diff --git a/jest.enzymeSetup.js b/jest.enzymeSetup.js index 98fff39c0..fea2b5170 100644 --- a/jest.enzymeSetup.js +++ b/jest.enzymeSetup.js @@ -2,7 +2,7 @@ /* eslint-disable import/no-extraneous-dependencies */ /* eslint-disable object-curly-newline */ import Enzyme, { mount, render, shallow } from 'enzyme'; -import { mockIntl, mountWithIntl, renderWithIntl, shallowWithIntl } from 'terra-enzyme-intl'; +import { mockIntl, mountWithIntl, renderWithIntl, shallowWithIntl } from '@cerner/terra-enzyme-intl'; import Adapter from 'enzyme-adapter-react-16'; Enzyme.configure({ adapter: new Adapter() }); diff --git a/package-lock.json b/package-lock.json index 2a2a34f00..832304e32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "@cerner/package-json-lint-config-terra": "2", "@cerner/stylelint-config-terra": "5", "@cerner/terra-cli": "1", + "@cerner/terra-enzyme-intl": "4", "@cerner/terra-functional-testing": "4", "@cerner/terra-open-source-scripts": "1", "@cerner/webpack-config-terra": "3", @@ -44,7 +45,6 @@ "lerna": "6", "postcss": "8", "stylelint": "15", - "terra-enzyme-intl": "3", "webpack": "5", "webpack-cli": "4", "webpack-dev-server": "4", @@ -57,16 +57,7 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "react-intl": "2" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "react-intl": "5" } }, "node_modules/@adobe/css-tools": { @@ -88,9 +79,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.24.1.tgz", - "integrity": "sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.24.5.tgz", + "integrity": "sha512-2qg1mYtJRsOOWF6IUwLP5jI42P8Cc0hQ5TmnjLrik/4DKouO8dFJN80HEz81VmVeUs97yuuf3vQ/9j7Elrcjlg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -137,20 +128,20 @@ } }, "node_modules/@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", + "@babel/generator": "^7.24.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -166,9 +157,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz", - "integrity": "sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", + "integrity": "sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -180,15 +171,15 @@ }, "peerDependencies": { "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -237,19 +228,19 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", - "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-split-export-declaration": "^7.24.5", "semver": "^6.3.1" }, "engines": { @@ -324,12 +315,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -347,15 +338,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -377,9 +368,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "engines": { "node": ">=6.9.0" } @@ -419,11 +410,11 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -442,11 +433,11 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -461,9 +452,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "engines": { "node": ">=6.9.0" } @@ -477,38 +468,38 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -517,74 +508,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -593,13 +520,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", - "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1024,12 +951,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", - "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1072,18 +999,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-split-export-declaration": "^7.24.5", "globals": "^11.1.0" }, "engines": { @@ -1110,12 +1037,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1444,15 +1371,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" + "@babel/plugin-transform-parameters": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1494,12 +1421,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1511,11 +1438,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1541,14 +1468,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1751,12 +1678,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1829,16 +1756,16 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", - "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", @@ -1865,12 +1792,12 @@ "@babel/plugin-transform-async-generator-functions": "^7.24.3", "@babel/plugin-transform-async-to-generator": "^7.24.1", "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.4", + "@babel/plugin-transform-block-scoping": "^7.24.5", "@babel/plugin-transform-class-properties": "^7.24.1", "@babel/plugin-transform-class-static-block": "^7.24.4", - "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-classes": "^7.24.5", "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", "@babel/plugin-transform-dotall-regex": "^7.24.1", "@babel/plugin-transform-duplicate-keys": "^7.24.1", "@babel/plugin-transform-dynamic-import": "^7.24.1", @@ -1890,13 +1817,13 @@ "@babel/plugin-transform-new-target": "^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", "@babel/plugin-transform-object-super": "^7.24.1", "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.1", - "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", "@babel/plugin-transform-property-literals": "^7.24.1", "@babel/plugin-transform-regenerator": "^7.24.1", "@babel/plugin-transform-reserved-words": "^7.24.1", @@ -1904,7 +1831,7 @@ "@babel/plugin-transform-spread": "^7.24.1", "@babel/plugin-transform-sticky-regex": "^7.24.1", "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", "@babel/plugin-transform-unicode-escapes": "^7.24.1", "@babel/plugin-transform-unicode-property-regex": "^7.24.1", "@babel/plugin-transform-unicode-regex": "^7.24.1", @@ -1964,9 +1891,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1975,9 +1902,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.4.tgz", - "integrity": "sha512-VOQOexSilscN24VEY810G/PqtpFvx/z6UqDIjIWbDe2368HhDLkYN5TYwaEz/+eRCUkhJ2WaNLLmQAlxzfWj4w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.5.tgz", + "integrity": "sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg==", "dev": true, "dependencies": { "core-js-pure": "^3.30.2", @@ -2001,18 +1928,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2021,12 +1948,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2063,6 +1990,55 @@ "webpack": "^4.30.0 || ^5.0.0" } }, + "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2090,6 +2066,18 @@ "node": ">=10" } }, + "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@cerner/duplicate-package-checker-webpack-plugin/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -2178,6 +2166,55 @@ "@cerner/package-json-lint": "2" } }, + "node_modules/@cerner/package-json-lint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@cerner/package-json-lint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@cerner/package-json-lint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@cerner/package-json-lint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@cerner/package-json-lint/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2205,6 +2242,18 @@ "node": ">=10" } }, + "node_modules/@cerner/package-json-lint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@cerner/package-json-lint/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -2255,62 +2304,12 @@ "react-intl": "^2.8.0 || ^5.0.0" } }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, "node_modules/@cerner/terra-aggregate-translations/node_modules/commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "dev": true }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@cerner/terra-aggregate-translations/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -2325,15 +2324,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@cerner/terra-aggregate-translations/node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -2343,18 +2333,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/@cerner/terra-aggregate-translations/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@cerner/terra-aggregate-translations/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -2405,6 +2383,26 @@ "react-dom": "^16.8.5" } }, + "node_modules/@cerner/terra-enzyme-intl": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@cerner/terra-enzyme-intl/-/terra-enzyme-intl-4.9.0.tgz", + "integrity": "sha512-UwaTKsGTh1nYxZyFfIz7t3Lx50HptFbwTctCZg5kg6i0j3TeSpv/Ztl0bTA6XYxpVjwuQULDCYzpFAperIKAMA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "prop-types": "^15.7.2", + "react-intl": "^5.25.1" + }, + "engines": { + "node": "10 || 12 || 14", + "npm": "6 || 9" + }, + "peerDependencies": { + "enzyme": "^3.9.0", + "react": "^16.8.5", + "react-dom": "^16.8.5" + } + }, "node_modules/@cerner/terra-functional-testing": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/@cerner/terra-functional-testing/-/terra-functional-testing-4.8.0.tgz", @@ -2459,6 +2457,67 @@ "webpack-cli": "^3.3.12 || ^4.0.0" } }, + "node_modules/@cerner/terra-functional-testing/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@cerner/terra-functional-testing/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@cerner/terra-functional-testing/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@cerner/terra-functional-testing/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@cerner/terra-functional-testing/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@cerner/terra-open-source-scripts": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/@cerner/terra-open-source-scripts/-/terra-open-source-scripts-1.16.0.tgz", @@ -2717,6 +2776,14 @@ "tslib": "^2.1.0" } }, + "node_modules/@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/@formatjs/icu-messageformat-parser": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.15.tgz", @@ -2776,44 +2843,58 @@ "tslib": "^2.1.0" } }, - "node_modules/@formatjs/intl-datetimeformat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-5.0.2.tgz", - "integrity": "sha512-yk7CItBMgtUsub123+iqOfXoqG6JHJIl3Pke7eOYb7QFAPsOZliAJb2i0+Tr1FXWcm1PdWZVHEv6C2l4nEmQdw==", + "node_modules/@formatjs/intl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz", + "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==", "dependencies": { "@formatjs/ecma402-abstract": "1.11.4", - "@formatjs/intl-localematcher": "0.2.25", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "intl-messageformat": "9.13.0", "tslib": "^2.1.0" + }, + "peerDependencies": { + "typescript": "^4.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@formatjs/intl-datetimeformat/node_modules/@formatjs/ecma402-abstract": { - "version": "1.11.4", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", - "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "node_modules/@formatjs/intl-displaynames": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz", + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==", "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", "@formatjs/intl-localematcher": "0.2.25", "tslib": "^2.1.0" } }, - "node_modules/@formatjs/intl-getcanonicallocales": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.9.2.tgz", - "integrity": "sha512-69WTStIJI2ikErOU1Il4NQKLVV8f2x6awr7+/dZz0uihuI7uQRcZtI6k/BBt4EtYaEl6w65YjUF93VuE015C0w==", + "node_modules/@formatjs/intl-displaynames/node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", "tslib": "^2.1.0" } }, - "node_modules/@formatjs/intl-locale": { - "version": "2.4.47", - "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.47.tgz", - "integrity": "sha512-yEpjx6RgVVG3pPsxb/jydhnq/A02KmjMste5U/wWxscRK0sny8LPIoBwgkOQycRoMRLNlLemJaQB7VbHZJ9OVg==", + "node_modules/@formatjs/intl-listformat": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz", + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==", "dependencies": { "@formatjs/ecma402-abstract": "1.11.4", - "@formatjs/intl-getcanonicallocales": "1.9.2", + "@formatjs/intl-localematcher": "0.2.25", "tslib": "^2.1.0" } }, - "node_modules/@formatjs/intl-locale/node_modules/@formatjs/ecma402-abstract": { + "node_modules/@formatjs/intl-listformat/node_modules/@formatjs/ecma402-abstract": { "version": "1.11.4", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", @@ -2839,6 +2920,34 @@ "tslib": "^2.1.0" } }, + "node_modules/@formatjs/intl/node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, "node_modules/@formatjs/ts-transformer": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.7.0.tgz", @@ -2866,6 +2975,67 @@ "integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==", "dev": true }, + "node_modules/@formatjs/ts-transformer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@formatjs/ts-transformer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@formatjs/ts-transformer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@formatjs/ts-transformer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@formatjs/ts-transformer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -3114,6 +3284,55 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@jest/console/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3123,6 +3342,18 @@ "node": ">=8" } }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/core": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", @@ -3170,6 +3401,55 @@ } } }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@jest/core/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -3194,6 +3474,18 @@ "node": ">=8" } }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/environment": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", @@ -3262,17 +3554,54 @@ } }, "node_modules/@jest/globals/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@jest/globals/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/globals/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/globals/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@jest/globals/node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -3350,12 +3679,36 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/globals/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@jest/globals/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 }, + "node_modules/@jest/globals/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/reporters": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", @@ -3400,6 +3753,55 @@ } } }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@jest/reporters/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3409,6 +3811,18 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -3491,6 +3905,55 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@jest/transform/node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -3506,6 +3969,18 @@ "node": ">=8" } }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/types": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", @@ -3522,6 +3997,67 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jimp/bmp": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.13.0.tgz", @@ -4085,6 +4621,67 @@ "node": "^14.17.0 || >=16.0.0" } }, + "node_modules/@lerna/child-process/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@lerna/child-process/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@lerna/child-process/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@lerna/child-process/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@lerna/child-process/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@lerna/create": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/@lerna/create/-/create-6.6.2.tgz", @@ -4700,6 +5297,21 @@ "node": ">= 14" } }, + "node_modules/@lerna/legacy-package-management/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@lerna/legacy-package-management/node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", @@ -4738,6 +5350,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@lerna/legacy-package-management/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@lerna/legacy-package-management/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@lerna/legacy-package-management/node_modules/cosmiconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", @@ -5450,9 +6080,9 @@ } }, "node_modules/@lerna/legacy-package-management/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/@lerna/legacy-package-management/node_modules/semver": { @@ -8033,6 +8663,67 @@ "node": ">=10" } }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@testing-library/jest-dom": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", @@ -8055,6 +8746,21 @@ "yarn": ">=1" } }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@testing-library/jest-dom/node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -8077,6 +8783,24 @@ "node": ">=8" } }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@testing-library/jest-dom/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8539,17 +9263,54 @@ } }, "node_modules/@types/jest/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@types/jest/node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -8665,10 +9426,22 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@types/jest/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@types/jest/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/@types/jest/node_modules/slash": { @@ -8680,6 +9453,18 @@ "node": ">=8" } }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -8862,18 +9647,18 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", - "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz", + "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", - "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, "dependencies": { "@types/react": "*" @@ -8891,9 +9676,9 @@ } }, "node_modules/@types/react-test-renderer": { - "version": "18.0.7", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.7.tgz", - "integrity": "sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.3.0.tgz", + "integrity": "sha512-HW4MuEYxfDbOHQsVlY/XtOvNHftCVEPhJF2pQXXwcUiUF+Oyb0usgp48HSgpK5rt8m9KZb22yqOeZm+rrVG8gw==", "dev": true, "dependencies": { "@types/react": "*" @@ -9302,6 +10087,37 @@ "undici-types": "~5.26.4" } }, + "node_modules/@wdio/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@wdio/cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/@wdio/cli/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -9316,6 +10132,24 @@ "node": ">=12" } }, + "node_modules/@wdio/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@wdio/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@wdio/cli/node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -9356,6 +10190,18 @@ "node": ">=12.0.0" } }, + "node_modules/@wdio/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@wdio/cli/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -9477,6 +10323,67 @@ "node": ">=12.0.0" } }, + "node_modules/@wdio/logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wdio/logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@wdio/logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@wdio/logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@wdio/mocha-framework": { "version": "7.33.0", "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.33.0.tgz", @@ -9598,6 +10505,67 @@ "@wdio/cli": "^7.0.0" } }, + "node_modules/@wdio/spec-reporter/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@wdio/spec-reporter/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wdio/spec-reporter/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@wdio/spec-reporter/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@wdio/spec-reporter/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@wdio/sync": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@wdio/sync/-/sync-7.27.0.tgz", @@ -10411,15 +11379,15 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -10497,17 +11465,14 @@ } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/ansi-wrap": { @@ -11098,9 +12063,9 @@ "optional": true }, "node_modules/aws-sdk": { - "version": "2.1606.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1606.0.tgz", - "integrity": "sha512-Sg1y0p93XI0ce86D9mi402sKMiH7LDoq6k3YzMja9yA0i3i0Pg3py4jjZ7p3HlKNOsDUF0t+9DLdCjtbTbuM6w==", + "version": "2.1610.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1610.0.tgz", + "integrity": "sha512-+s4NmrB4wc4AzJcBwdwBy2UrLyOKMtRNzyqtkUF+j9qAeuoVBrGzxMCW82T8hayCxO2V4DamB2kvbDgLkpPhMg==", "dev": true, "hasInstallScript": true, "optional": true, @@ -11236,6 +12201,55 @@ "@babel/core": "^7.8.0" } }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/babel-jest/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -11245,6 +12259,18 @@ "node": ">=8" } }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-loader": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", @@ -11264,20 +12290,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/babel-loader/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -12048,15 +13060,6 @@ "node": ">=0.10.0" } }, - "node_modules/cac/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/cac/node_modules/find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -12478,9 +13481,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001612", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", - "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", + "version": "1.0.30001614", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz", + "integrity": "sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==", "funding": [ { "type": "opencollective", @@ -12512,29 +13515,35 @@ } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" } }, "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/char-regex": { @@ -12668,6 +13677,18 @@ "node": ">=12.13.0" } }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -12692,9 +13713,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "node_modules/classlist-polyfill": { @@ -12888,20 +13909,17 @@ "dev": true }, "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-support": { "version": "1.1.3", @@ -13614,20 +14632,6 @@ "webpack": "^4.27.0 || ^5.0.0" } }, - "node_modules/css-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/css-loader/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -13937,89 +14941,18 @@ "node": ">=14.13.1" } }, - "node_modules/danger/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/danger/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/danger/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/danger/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, "node_modules/danger/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/danger/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/danger/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/danger/node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, - "node_modules/danger/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -14974,9 +15907,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.748", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.748.tgz", - "integrity": "sha512-VWqjOlPZn70UZ8FTKUOkUvBLeTQ0xpty66qV0yJcAGY2/CthI4xyW9aEozRVtuwv3Kpf5xTesmJUcPwuJmgP4A==" + "version": "1.4.752", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.752.tgz", + "integrity": "sha512-P3QJreYI/AUTcfBVrC4zy9KvnZWekViThgQMX/VpJ+IsOBbcX5JFpORM4qWapwWQ+agb2nYAOyn/4PMXOk0m2Q==" }, "node_modules/email-addresses": { "version": "5.0.0", @@ -15098,9 +16031,9 @@ } }, "node_modules/envinfo": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", - "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -15338,14 +16271,14 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", - "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", + "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", @@ -15363,9 +16296,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" }, "node_modules/es-object-atoms": { "version": "1.0.0", @@ -15431,15 +16364,11 @@ "dev": true }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/escodegen": { @@ -15874,9 +16803,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "engines": { "node": ">=10" @@ -15951,6 +16880,67 @@ "@babel/highlight": "^7.10.4" } }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -16002,6 +16992,18 @@ "node": ">=10" } }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -16295,17 +17297,54 @@ } }, "node_modules/expect-webdriverio/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/expect-webdriverio/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/expect-webdriverio/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect-webdriverio/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/expect-webdriverio/node_modules/diff-sequences": { "version": "28.1.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", @@ -16422,10 +17461,22 @@ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, + "node_modules/expect-webdriverio/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/expect-webdriverio/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/expect-webdriverio/node_modules/slash": { @@ -16437,6 +17488,18 @@ "node": ">=8" } }, + "node_modules/expect-webdriverio/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/expect/node_modules/@jest/types": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", @@ -16462,6 +17525,55 @@ "@types/yargs-parser": "*" } }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/expect/node_modules/jest-message-util": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", @@ -16500,6 +17612,18 @@ "node": ">=8" } }, + "node_modules/expect/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -16773,15 +17897,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -16814,20 +17929,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/file-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/file-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -17301,9 +18402,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", "dev": true }, "node_modules/fs-readdir-recursive": { @@ -17941,11 +19042,12 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -18663,6 +19765,30 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/html-webpack-plugin/node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -19219,6 +20345,67 @@ "node": ">=8.0.0" } }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -19246,41 +20433,48 @@ "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" }, - "node_modules/intl-format-cache": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", - "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==", - "peer": true - }, "node_modules/intl-locales-supported": { "version": "1.8.11", "resolved": "https://registry.npmjs.org/intl-locales-supported/-/intl-locales-supported-1.8.11.tgz", "integrity": "sha512-J+RhLNDxEvaNPdsoWz2KKlLSqU0MfV4Pd6zS1Yx/tN/KGN5QYe4Z2+ifJod95LlaA4K6qogwrSzm/WyTNOV6RA==" }, "node_modules/intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha512-I+tSvHnXqJYjDfNmY95tpFMj30yoakC6OXAo+wu/wTMy6tA/4Fd4mvV7Uzs4cqK/Ap29sHhwjcY+78a8eifcXw==", - "peer": true, + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", "dependencies": { - "intl-messageformat-parser": "1.4.0" + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" } }, - "node_modules/intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha512-/XkqFHKezO6UcF4Av2/Lzfrez18R0jyw7kRFhSeB/YRakdrgSc9QfFZUwNJI9swMwMoNPygK1ArC5wdFSjPw+A==", - "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", - "peer": true + "node_modules/intl-messageformat/node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } }, - "node_modules/intl-relativeformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", - "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", - "deprecated": "This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide'", - "peer": true, + "node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "node_modules/intl-messageformat/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", "dependencies": { - "intl-messageformat": "^2.0.0" + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" } }, "node_modules/invariant": { @@ -20195,6 +21389,67 @@ "node": ">=10" } }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", @@ -20265,17 +21520,54 @@ } }, "node_modules/jest-circus/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-circus/node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -20353,6 +21645,18 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-circus/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-circus/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -20368,6 +21672,18 @@ "node": ">=8" } }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-cli": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", @@ -20402,6 +21718,67 @@ } } }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-config": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", @@ -20446,17 +21823,54 @@ } }, "node_modules/jest-config/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-config/node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -20480,6 +21894,18 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-config/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-config/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -20495,6 +21921,18 @@ "node": ">=8" } }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-diff": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", @@ -20510,6 +21948,67 @@ "node": ">= 10.14.2" } }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-docblock": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", @@ -20539,17 +22038,54 @@ } }, "node_modules/jest-each/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-each/node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -20573,12 +22109,36 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-each/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-each/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 }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-environment-jsdom": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", @@ -20678,17 +22238,54 @@ } }, "node_modules/jest-jasmine2/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-jasmine2/node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -20766,12 +22363,36 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-jasmine2/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-jasmine2/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 }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-leak-detector": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", @@ -20841,6 +22462,67 @@ "node": ">= 10.14.2" } }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", @@ -20862,17 +22544,54 @@ } }, "node_modules/jest-message-util/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-message-util/node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -20887,6 +22606,18 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-message-util/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-message-util/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -20902,6 +22633,18 @@ "node": ">=8" } }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-mock": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", @@ -20976,6 +22719,55 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-resolve/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -20985,6 +22777,18 @@ "node": ">=8" } }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-runner": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", @@ -21017,6 +22821,67 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-runtime": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", @@ -21050,6 +22915,55 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-runtime/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -21059,6 +22973,18 @@ "node": ">=8" } }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-serializer": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", @@ -21106,17 +23032,54 @@ } }, "node_modules/jest-snapshot/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-snapshot/node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -21206,6 +23169,18 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-snapshot/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-snapshot/node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -21227,6 +23202,18 @@ "node": ">=10" } }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-snapshot/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -21250,6 +23237,67 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-validate": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", @@ -21268,12 +23316,15 @@ } }, "node_modules/jest-validate/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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -21291,6 +23342,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/jest-validate/node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -21314,12 +23399,36 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-validate/node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-validate/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 }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-watcher": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", @@ -21338,6 +23447,67 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -22230,6 +24400,21 @@ "node": ">= 14" } }, + "node_modules/lerna/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/lerna/node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", @@ -22274,6 +24459,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/lerna/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/lerna/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/lerna/node_modules/cosmiconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", @@ -23322,27 +25525,16 @@ } }, "node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "json5": "^2.1.2" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "node": ">=8.9.0" } }, "node_modules/locate-path": { @@ -23608,6 +25800,67 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/loglevel": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", @@ -24461,20 +26714,6 @@ "webpack": "^4.4.0 || ^5.0.0" } }, - "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -24897,6 +27136,18 @@ "node": ">=0.3.1" } }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -26075,12 +28326,43 @@ } } }, + "node_modules/nx/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/nx/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/nx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/nx/node_modules/cli-spinners": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", @@ -26093,6 +28375,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nx/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nx/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/nx/node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -26196,6 +28496,18 @@ "node": ">=4" } }, + "node_modules/nx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nx/node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -26516,17 +28828,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -26555,6 +28867,67 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -27581,9 +29954,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -27832,20 +30205,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/postcss-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/postcss-loader/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -28043,6 +30402,12 @@ "node": ">=10" } }, + "node_modules/postcss-values-parser/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/postcss-values-parser/node_modules/picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", @@ -28124,12 +30489,73 @@ "@types/yargs-parser": "*" } }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/pretty-format/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 }, + "node_modules/pretty-format/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", @@ -28620,20 +31046,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/raw-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/raw-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -28815,20 +31227,57 @@ } }, "node_modules/react-intl": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", - "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", - "peer": true, + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz", + "integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==", "dependencies": { - "hoist-non-react-statics": "^3.3.0", - "intl-format-cache": "^2.0.5", - "intl-messageformat": "^2.1.0", - "intl-relativeformat": "^2.1.0", - "invariant": "^2.1.1" + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-messageformat-parser": "2.1.0", + "@formatjs/intl": "2.2.1", + "@formatjs/intl-displaynames": "5.4.3", + "@formatjs/intl-listformat": "6.5.3", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "9.13.0", + "tslib": "^2.1.0" }, "peerDependencies": { - "prop-types": "^15.5.4", - "react": "^0.14.9 || ^15.0.0 || ^16.0.0" + "react": "^16.3.0 || 17 || 18", + "typescript": "^4.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-intl/node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/react-intl/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "node_modules/react-intl/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" } }, "node_modules/react-is": { @@ -30200,56 +32649,6 @@ "rtlcss": "bin/rtlcss.js" } }, - "node_modules/rtlcss/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rtlcss/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rtlcss/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/rtlcss/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/rtlcss/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/rtlcss/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -30406,9 +32805,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.75.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", - "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", + "version": "1.76.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.76.0.tgz", + "integrity": "sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -30459,20 +32858,6 @@ } } }, - "node_modules/sass-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/sass-loader/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -31028,6 +33413,39 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -31578,15 +33996,6 @@ "node": ">=0.10.0" } }, - "node_modules/strip-outer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", @@ -32302,15 +34711,15 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -32690,9 +35099,9 @@ "link": true }, "node_modules/terra-arrange": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/terra-arrange/-/terra-arrange-3.56.0.tgz", - "integrity": "sha512-0tvf1qpDM1iOGS3GtTES+zTNaQZYjt/18F1gn84eFiJ8/ARnx5nRRgLCSXvkY0fHMm1GmtytxQhg5wP1CtXEIg==", + "version": "3.56.1", + "resolved": "https://registry.npmjs.org/terra-arrange/-/terra-arrange-3.56.1.tgz", + "integrity": "sha512-8Rcdr0ASrNm6wjTqxlvSu11tUtrM+jeZGsyvniyfyGNu2Bx68CVF8zS3Q2Bb94qNQxzhEvjjY7Im2LizuPol8g==", "dependencies": { "classnames": "^2.2.5", "lodash.uniqueid": "^4.0.1", @@ -32720,22 +35129,6 @@ "react-intl": ">=2.8.0 <6.0.0" } }, - "node_modules/terra-base": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/terra-base/-/terra-base-5.53.0.tgz", - "integrity": "sha512-hIXcwrUfwI2dWxrsIRxwKxQ2FJI2/d69DULxBOx3eOtDkMdL1kHg8zHq/y2ImJNa2fcMSppF2T7u3hWnRk1gdg==", - "dependencies": { - "classnames": "^2.2.5", - "prop-types": "^15.5.8", - "terra-i18n": "^4.42.0" - }, - "peerDependencies": { - "react": "^16.8.5", - "react-dom": "^16.8.5", - "react-intl": "^2.8.0", - "terra-theme-provider": "^4.16.0" - } - }, "node_modules/terra-breakpoints": { "version": "2.40.0", "resolved": "https://registry.npmjs.org/terra-breakpoints/-/terra-breakpoints-2.40.0.tgz", @@ -32846,20 +35239,6 @@ "terra-theme-provider": "^4.16.0" } }, - "node_modules/terra-enzyme-intl": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/terra-enzyme-intl/-/terra-enzyme-intl-3.4.0.tgz", - "integrity": "sha512-rgr0/vNg8GPc/r7mDu/hDSp5/y6rxEpYxiPK4RnG6H+mFAUeW5o/LNzPnSA5aAxKLC1MzAPQDF/riGg8zrRIdQ==", - "dev": true, - "engines": { - "node": ">=8.9.2" - }, - "peerDependencies": { - "enzyme": "3.x", - "react": "16.x", - "react-intl": ">= 2.7" - } - }, "node_modules/terra-form-checkbox": { "version": "4.26.0", "resolved": "https://registry.npmjs.org/terra-form-checkbox/-/terra-form-checkbox-4.26.0.tgz", @@ -32969,22 +35348,6 @@ "terra-theme-provider": "^4.16.0" } }, - "node_modules/terra-i18n": { - "version": "4.42.0", - "resolved": "https://registry.npmjs.org/terra-i18n/-/terra-i18n-4.42.0.tgz", - "integrity": "sha512-HkJr7nClsMvL9NttL7FGeNziFIJ4Syvwi/rqTHY93ZoVS/7Luu5sk45AwQci4Nnx/jTJ919LW5QaeKP6/KJRvQ==", - "dependencies": { - "classnames": "^2.2.5", - "intl": "^1.2.5", - "intl-locales-supported": ">=1.8.4 <1.8.12 || ^1.8.13", - "prop-types": "^15.5.8" - }, - "peerDependencies": { - "react": "^16.8.5", - "react-dom": "^16.8.5", - "react-intl": "^2.8.0" - } - }, "node_modules/terra-icon": { "version": "3.60.0", "resolved": "https://registry.npmjs.org/terra-icon/-/terra-icon-3.60.0.tgz", @@ -33614,9 +35977,9 @@ } }, "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.30.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz", - "integrity": "sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -33802,9 +36165,9 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "dependencies": { "psl": "^1.1.33", @@ -33873,15 +36236,6 @@ "node": ">=0.10.0" } }, - "node_modules/trim-repeated/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", @@ -34216,7 +36570,7 @@ "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -34548,9 +36902,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz", + "integrity": "sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==", "funding": [ { "type": "opencollective", @@ -34566,7 +36920,7 @@ } ], "dependencies": { - "escalade": "^3.1.1", + "escalade": "^3.1.2", "picocolors": "^1.0.0" }, "bin": { @@ -35283,15 +37637,15 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -35395,15 +37749,15 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -35472,9 +37826,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" @@ -35579,9 +37933,9 @@ } }, "node_modules/webpack/node_modules/terser": { - "version": "5.30.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz", - "integrity": "sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -35804,6 +38158,15 @@ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -35850,6 +38213,69 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -36163,15 +38589,6 @@ "which": "^1.2.9" } }, - "node_modules/yarn-install/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/yarn-install/node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -36266,13 +38683,16 @@ } }, "packages/terra-application": { - "version": "1.58.0", + "version": "2.1.0", "license": "Apache-2.0", "dependencies": { "@cerner/terra-docs": "1", + "@formatjs/intl-relativetimeformat": "8", "classnames": "2", "eventemitter3": "4", "focus-trap-react": "6", + "intl": "1", + "intl-locales-supported": ">=1.8.4 <1.8.12 || ^1.8.13", "keycode-js": "3", "lodash.debounce": "4", "mutationobserver-shim": "<=0.3.3", @@ -36283,7 +38703,6 @@ "terra-action-footer": "2", "terra-action-header": "2", "terra-avatar": "3", - "terra-base": "5", "terra-breakpoints": "2", "terra-button": "3", "terra-collapsible-menu-view": "6", @@ -36312,15 +38731,15 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "react-intl": "2" + "react-intl": "5" } }, "packages/terra-application-docs": { "name": "@cerner/terra-application-docs", - "version": "2.15.0", + "version": "3.1.0", "license": "Apache-2.0", "dependencies": { - "@cerner/terra-dev-site": "^7.14.0", + "@cerner/terra-dev-site": "8", "@cerner/terra-docs": "1", "classnames": "2", "prop-types": "15", @@ -36331,22 +38750,19 @@ "terra-mixins": "1", "terra-toolbar": "1" }, - "devDependencies": { - "terra-application": "^1.58.0" - }, "engines": { "node": ">=10.13.0" }, "peerDependencies": { "react": "16", "react-dom": "16", - "react-intl": "2 || 3 || 4 || 5", - "terra-application": "1" + "react-intl": "5", + "terra-application": "2" } }, "packages/terra-dev-site": { "name": "@cerner/terra-dev-site", - "version": "7.14.0", + "version": "8.1.0", "license": "Apache-2.0", "dependencies": { "@cerner/terra-polyfill": "^1.3.0", @@ -36394,52 +38810,69 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "terra-application": "1", + "terra-application": "2", "webpack": "4 || 5" } }, - "packages/terra-dev-site/node_modules/@cerner/terra-polyfill": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@cerner/terra-polyfill/-/terra-polyfill-1.4.0.tgz", - "integrity": "sha512-00Ac5ZvEx+f47zBrFeQFi6Mw7J304ujn8vvZkfJxGpvqLwiJgaM5oQWi89kQ1m1OqHSTE3PdXPLRPRa55jfTDw==", - "dependencies": { - "@formatjs/intl-datetimeformat": "^5.0.2", - "@formatjs/intl-getcanonicallocales": "^1.9.2", - "@formatjs/intl-locale": "^2.4.47", - "@formatjs/intl-relativetimeformat": "^8.0.0", - "abortcontroller-polyfill": "^1.7.3", - "core-js": "^3.15.2", - "intl": "^1.2.5", - "mutationobserver-shim": "<=0.3.3", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2", - "wicg-inert": "3.1.2" + "packages/terra-dev-site/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "packages/terra-dev-site/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "packages/terra-dev-site/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "packages/terra-dev-site/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "packages/terra-dev-site/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "packages/terra-dev-site/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "packages/terra-dev-site/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, "packages/terra-polyfill": { "name": "@cerner/terra-polyfill", - "version": "1.2.0", + "version": "1.4.0", "license": "Apache-2.0", "dependencies": { "@formatjs/intl-relativetimeformat": "8", diff --git a/package.json b/package.json index 5b3b58b25..fb8f52468 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "react-intl": "2" + "react-intl": "5" }, "devDependencies": { "@babel/cli": "7", @@ -57,6 +57,7 @@ "@cerner/package-json-lint-config-terra": "2", "@cerner/stylelint-config-terra": "5", "@cerner/terra-cli": "1", + "@cerner/terra-enzyme-intl": "4", "@cerner/terra-functional-testing": "4", "@cerner/terra-open-source-scripts": "1", "@cerner/webpack-config-terra": "3", @@ -75,7 +76,6 @@ "lerna": "6", "postcss": "8", "stylelint": "15", - "terra-enzyme-intl": "3", "webpack": "5", "webpack-cli": "4", "webpack-dev-server": "4", diff --git a/packages/terra-application-docs/CHANGELOG.md b/packages/terra-application-docs/CHANGELOG.md index 0bcb8dfc1..3aa933fa0 100644 --- a/packages/terra-application-docs/CHANGELOG.md +++ b/packages/terra-application-docs/CHANGELOG.md @@ -2,6 +2,23 @@ ## Unreleased +## 3.1.0 - (June 22, 2022) + +* Changed + * Minor dependency version bump + +## 3.0.1 - (June 8, 2022) + +* Changed + * Minor dependency bump. + +## 3.0.0 - (May 31, 2022) + +* Breaking Changes + * Dropped react-intl v2-v4 support. + +--- + ## 2.15.0 - (May 1, 2024) * Changed diff --git a/packages/terra-application-docs/package.json b/packages/terra-application-docs/package.json index 60b5f1713..0f2933a9f 100644 --- a/packages/terra-application-docs/package.json +++ b/packages/terra-application-docs/package.json @@ -1,6 +1,6 @@ { "name": "@cerner/terra-application-docs", - "version": "2.15.0", + "version": "3.1.0", "description": "Contains documentation for packages in the terra-application monorepo", "author": "Cerner Corporation", "repository": { @@ -30,7 +30,7 @@ "src" ], "dependencies": { - "@cerner/terra-dev-site": "^7.14.0", + "@cerner/terra-dev-site": "8", "@cerner/terra-docs": "1", "classnames": "2", "prop-types": "15", @@ -44,11 +44,8 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "react-intl": "2 || 3 || 4 || 5", - "terra-application": "1" - }, - "devDependencies": { - "terra-application": "^1.58.0" + "react-intl": "5", + "terra-application": "2" }, "scripts": { "compile": "babel --root-mode upward src --out-dir lib --copy-files", diff --git a/packages/terra-application/CHANGELOG.md b/packages/terra-application/CHANGELOG.md index 3d14cc501..0eb281257 100644 --- a/packages/terra-application/CHANGELOG.md +++ b/packages/terra-application/CHANGELOG.md @@ -2,6 +2,37 @@ ## Unreleased +* Changed + * Updated size explanations for ModalManager managed by DisclosureManagerContext. + +* The following changes from v1 are added: + * Added `noScroll` prop to remove scroll in powerchart. + * Added user action utility button. + * Locked `uuid` dependency to `3.4.0`. + * Updated `getBrowserLocale` method for IE. + * Updated jest snapshots for terra-icon and terra-button changes. + * Updated size explanations for ModalManager managed by DisclosureManagerContext. + +## 2.1.0 - (June 22, 2022) + +* Changed + * Updated condition statement added to check `inert` polyfill is required. + * Updated `wicg-inert` to latest version. + +## 2.0.1 - (June 8, 2022) + +* Minor dependency bump. + +## 2.0.0 - (May 31, 2022) + +* Breaking Changes + * Dropped react-intl v2-v4 support. + * `customTranslatedMessages` prop removed, thus dropping support for the ability of consumers to provide translations for an unsupported locale. + * `contextShape` will not be provided by `ApplicationIntlContext` anymore since `intlShape` is no longer exported by `react-intl`. + * `translationsLoadingPlaceholder` prop removed. + +--- + ## 1.58.0 - (April 23, 2024) * Added @@ -17,7 +48,7 @@ ## 1.56.0 - (September 19, 2023) -* Changed +* Added * Added `noScroll` prop to remove scroll in powerchart. ## 1.56.0-alpha.0 - (September 8, 2023) diff --git a/packages/terra-application/package.json b/packages/terra-application/package.json index 1f64f87a3..761b6252e 100644 --- a/packages/terra-application/package.json +++ b/packages/terra-application/package.json @@ -1,6 +1,6 @@ { "name": "terra-application", - "version": "1.58.0", + "version": "2.1.0", "description": "A framework to support application development with Terra components", "author": "Cerner Corporation", "repository": { @@ -30,9 +30,12 @@ ], "dependencies": { "@cerner/terra-docs": "1", + "@formatjs/intl-relativetimeformat": "8", "classnames": "2", "eventemitter3": "4", "focus-trap-react": "6", + "intl": "1", + "intl-locales-supported": ">=1.8.4 <1.8.12 || ^1.8.13", "keycode-js": "3", "lodash.debounce": "4", "mutationobserver-shim": "<=0.3.3", @@ -43,7 +46,6 @@ "terra-action-footer": "2", "terra-action-header": "2", "terra-avatar": "3", - "terra-base": "5", "terra-breakpoints": "2", "terra-button": "3", "terra-collapsible-menu-view": "6", @@ -69,7 +71,7 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "react-intl": "2" + "react-intl": "5" }, "scripts": { "compile": "babel --root-mode upward src --out-dir lib --copy-files", diff --git a/packages/terra-application/src/application-base/ApplicationBase.jsx b/packages/terra-application/src/application-base/ApplicationBase.jsx index eaf1430d0..44f4af555 100644 --- a/packages/terra-application/src/application-base/ApplicationBase.jsx +++ b/packages/terra-application/src/application-base/ApplicationBase.jsx @@ -1,15 +1,15 @@ /* global TERRA_THEME_CONFIG */ import React, { - useRef, useEffect, Suspense, useMemo, + useRef, useEffect, useMemo, useState, Suspense, } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames/bind'; -// eslint-disable-next-line import/no-extraneous-dependencies -import Base from 'terra-base'; import ThemeProvider from 'terra-theme-provider'; import { ActiveBreakpointProvider } from 'terra-breakpoints'; import ThemeContextProvider from 'terra-theme-context/lib/ThemeContextProvider'; +import { IntlProvider } from 'react-intl'; +import i18nLoader from './private/i18nLoader'; import ApplicationErrorBoundary from '../application-error-boundary'; import { ApplicationIntlProvider } from '../application-intl'; @@ -18,8 +18,10 @@ import { ApplicationStatusOverlayProvider } from '../application-status-overlay' import { NavigationPromptCheckpoint } from '../navigation-prompt'; import getBrowserLocale from './private/getBrowserLocale'; import useTestOverrides from './private/useTestOverrides'; +import Logger from '../utils/logger'; import './private/initializeInert'; +import './baseStyles'; import styles from './ApplicationBase.module.scss'; @@ -41,34 +43,10 @@ const propTypes = { * If the `locale` prop is not provided, the preferred language from the browser will be used. */ locale: PropTypes.string, - /** - * Custom translations for the current locale. - */ - customTranslatedMessages: (props, propName, componentName) => { - if (!props[propName]) { - return null; - } - - if (Object.keys(props[propName]).length !== 0 && props.locale === undefined) { - return new Error(`Missing locale prop for ${propName} in ${componentName} props`); - } - - return null; - }, - /** - * The component to render while the translation files are being retrieved. - * NOTE: Absolutely no locale-dependent logic should be - * utilized in this placeholder. - */ - translationsLoadingPlaceholder: PropTypes.node, /** * The name of the theme to apply to the application using terra-theme-provider. */ themeName: PropTypes.string, - /** - * The density of the theme to apply to the application using terra-theme-provider. - */ - themeDensity: PropTypes.string, /** * By default, the elements rendered by ApplicationBase are fit to the Application's parent using 100% height. * If `fitToParentIsDisabled` is provided, the Application will render at its intrinsic content height and @@ -86,13 +64,13 @@ const propTypes = { * When set to true scroll will be disabled. internal prop to be used by Mpages for terra-tabs in Powerchart. */ noScroll: PropTypes.bool, - }; const ApplicationBase = ({ - locale, customTranslatedMessages, translationsLoadingPlaceholder, themeName, themeDensity, fitToParentIsDisabled, children, unloadPromptIsDisabled, noScroll, + locale, themeName, fitToParentIsDisabled, children, unloadPromptIsDisabled, noScroll, }) => { const registeredPromptsRef = useRef(); + const [messages, setMessages] = useState(); useEffect(() => { if (unloadPromptIsDisabled) { @@ -122,27 +100,34 @@ const ApplicationBase = ({ const { localeOverride, themeOverride } = useTestOverrides(); // Allows us to test deployed applications in different locales. - let density = themeDensity || themeConfig?.density; - if (themeName === 'redwood-theme' && !density) { - density = 'comfortable'; - } + const finalLocale = localeOverride || locale || browserLocale; + + useEffect(() => { + if (finalLocale !== undefined) { + i18nLoader(finalLocale).then(translationsModule => setMessages(translationsModule.default)).catch((error) => { + // eslint-disable-next-line no-console + Logger.error(error); + throw error; + }); + } + }, [finalLocale]); const theme = useMemo(() => ({ // If the theme class name is undefined or an empty string, that indicates we have the root theme and should apply the root theme name. name: themeOverride || themeName || rootThemeName, className: themeOverride || themeName, - density, - }), [themeOverride, themeName, density]); + }), [themeOverride, themeName]); + + if (messages === undefined) return null; return (
- + - @@ -163,7 +148,7 @@ const ApplicationBase = ({ - +
diff --git a/packages/terra-application/src/application-base/Base.scss b/packages/terra-application/src/application-base/Base.scss new file mode 100644 index 000000000..115c09f19 --- /dev/null +++ b/packages/terra-application/src/application-base/Base.scss @@ -0,0 +1,39 @@ +// Themes +@import './clinical-lowlight-theme/Base'; +@import './orion-fusion-theme/Base'; + +html { + background-attachment: var(--terra-application-base-background-attachment); + background-color: var(--terra-application-base-background-color, #fff); + background-image: var(--terra-application-base-background-image); + background-position: var(--terra-application-base-background-position); + background-repeat: var(--terra-application-base-background-repeat); + background-size: var(--terra-application-base-background-size); + // Normalize box-sizing. + // More info: https://css-tricks.com/box-sizing/#article-header-id-6 + box-sizing: border-box; + font-family: var(--terra-application-base-font-family, 'Helvetica Neue', Helvetica, Arial, sans-serif); + font-size: var(--terra-application-base-font-size, 87.5%); + height: var(--terra-application-base-html-height, 100%); + margin: var(--terra-application-base-html-margin, 0); + text-size-adjust: 100%; +} + +body { + color: var(--terra-application-base-color, #1c1f21); + font-size: 1rem; + height: var(--terra-application-base-body-height, 100%); + line-height: var(--terra-application-base-line-height, 1.4285714285714286); + margin: var(--terra-application-base-body-margin, 0); + + @media print { + background-color: transparent !important; + color: #000 !important; + } +} + +*, +*::before, +*::after { + box-sizing: inherit; +} diff --git a/packages/terra-application/src/application-base/baseStyles.js b/packages/terra-application/src/application-base/baseStyles.js new file mode 100644 index 000000000..a85675852 --- /dev/null +++ b/packages/terra-application/src/application-base/baseStyles.js @@ -0,0 +1,11 @@ +import './Base.scss'; +import Logger from '../utils/logger'; + +// Checks to run when not in production +if (process.env.NODE_ENV !== 'production') { + // Check to ensure dir attribute is set on html element + if (!document.documentElement.hasAttribute('dir')) { + // eslint-disable-next-line + Logger.warn('The html element is missing the dir attribute. For terra directionality based styles to render correctly, add dir="ltr" or dir="rtl" to the html element.'); + } +} diff --git a/packages/terra-application/src/application-base/clinical-lowlight-theme/Base.scss b/packages/terra-application/src/application-base/clinical-lowlight-theme/Base.scss new file mode 100644 index 000000000..12f33a66f --- /dev/null +++ b/packages/terra-application/src/application-base/clinical-lowlight-theme/Base.scss @@ -0,0 +1,18 @@ +:global { + .clinical-lowlight-theme { + --terra-application-base-background-attachment: none; + --terra-application-base-background-color: #222a2e; + --terra-application-base-background-image: none; + --terra-application-base-background-position: none; + --terra-application-base-background-repeat: none; + --terra-application-base-background-size: none; + --terra-application-base-font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + --terra-application-base-font-size: 87.5%; // root: 16px, base: 12px + --terra-application-base-html-height: 100%; + --terra-application-base-html-margin: 0; + --terra-application-base-color: #b2b5b6; + --terra-application-base-body-height: 100%; + --terra-application-base-line-height: 1.4285694285714286; + --terra-application-base-body-margin: 0; + } +} diff --git a/packages/terra-application/src/application-base/orion-fusion-theme/Base.scss b/packages/terra-application/src/application-base/orion-fusion-theme/Base.scss new file mode 100644 index 000000000..f196d03f1 --- /dev/null +++ b/packages/terra-application/src/application-base/orion-fusion-theme/Base.scss @@ -0,0 +1,18 @@ +:global { + .orion-fusion-theme { + --terra-application-base-background-attachment: scroll; + --terra-application-base-background-color: rgba(255, 255, 255, 1); + --terra-application-base-background-image: none; + --terra-application-base-background-position: none; + --terra-application-base-background-repeat: none; + --terra-application-base-background-size: auto; + --terra-application-base-font-family: Tahoma, Geneva, Verdana, Trebuchet MS, sans-serif; + --terra-application-base-font-size: 75%; // root: 16px, base: 14px + --terra-application-base-html-height: 100%; + --terra-application-base-html-margin: 0; + --terra-application-base-color: #1c1f21; + --terra-application-base-body-height: 100%; + --terra-application-base-line-height: 1.4285694285714286; + --terra-application-base-body-margin: 0; + } +} diff --git a/packages/terra-application/src/application-base/private/getBrowserLocale.js b/packages/terra-application/src/application-base/private/getBrowserLocale.js index ddc0fc6c7..3ea880a7f 100644 --- a/packages/terra-application/src/application-base/private/getBrowserLocale.js +++ b/packages/terra-application/src/application-base/private/getBrowserLocale.js @@ -49,7 +49,6 @@ const getBrowserLocale = () => { if (preferredLocale) { return preferredLocale; } - /* for IE support, as languages and language in IE return undefined, and userLanguage and browserLanguage return "en-US" */ if (isSupported(navigator.systemLanguage)) { return navigator.systemLanguage; diff --git a/packages/terra-application/src/application-base/private/i18nLoader.js b/packages/terra-application/src/application-base/private/i18nLoader.js new file mode 100644 index 000000000..85a26947e --- /dev/null +++ b/packages/terra-application/src/application-base/private/i18nLoader.js @@ -0,0 +1,52 @@ +/* eslint-disable global-require, import/no-named-as-default */ +import { shouldPolyfill } from '@formatjs/intl-relativetimeformat/should-polyfill'; +import loadIntl from './intlLoaders'; +import loadTranslations from './translationsLoaders'; + +const i18nLoader = (locale) => { + /** + * Use try-catch to check if Intl is provided by the browser. In some instances checking Intl will throw an + * error and crash the page with little information. + * + * Reference: https://github.com/cerner/terra-core/issues/2820 + */ + let hasIntl; + try { + hasIntl = typeof (Intl) === 'object' && typeof (Intl.DateTimeFormat) === 'function' && typeof (Intl.NumberFormat) === 'function' && typeof (Intl.PluralRules) === 'function'; + } catch (error) { + hasIntl = false; + } + + if (!hasIntl) { + require('intl'); + } + + if (shouldPolyfill()) { + require('@formatjs/intl-relativetimeformat/polyfill'); + } + + if (global.IntlPolyfill) { + /** + * Intl polyfill attempts to cache and restore static RegExp properties before executing any regular expressions in order + * to comply with ECMA-402. There are times this results in regex syntax error so we are disabling this feature. + * + * Reference: https://github.com/andyearnshaw/Intl.js#regexp-cache--restore + */ + /* eslint-disable no-underscore-dangle */ + if (Intl.__disableRegExpRestore && typeof Intl.__disableRegExpRestore === 'function') { + Intl.__disableRegExpRestore(); + } + /* eslint-enable no-underscore-dangle */ + + loadIntl(locale, 'intl'); + } + + if (global.Intl && Intl.RelativeTimeFormat && Intl.RelativeTimeFormat.polyfilled) { + loadIntl(locale, 'relativetimeformat'); + } + + return loadTranslations(locale); +}; + +export default i18nLoader; +/* eslint-enable global-require */ diff --git a/packages/terra-application/src/application-base/private/intlLoaders.js b/packages/terra-application/src/application-base/private/intlLoaders.js new file mode 100644 index 000000000..b8d45b436 --- /dev/null +++ b/packages/terra-application/src/application-base/private/intlLoaders.js @@ -0,0 +1,78 @@ +import hasIntlData from 'intl-locales-supported'; +import loadLocaleData from './loadLocaleData'; +import logger from '../../utils/logger'; + +const supportedIntlConstructors = (polyfill) => { + /** + * Use try-catch to check if Intl is provided by the browser. In some instances checking Intl will throw an + * error and crash the page with little information. + * + * Reference: https://github.com/cerner/terra-core/issues/2820 + */ + let constructors; + try { + if (polyfill === 'intl') { + if (typeof (Intl) === 'object' && typeof (Intl.DateTimeFormat) === 'function' && typeof (Intl.NumberFormat) === 'function' && typeof (Intl.PluralRules) === 'function') { + /** + * intl-locales-supported accesses the 'supportedLocalesOf' property of each of these constructors. + * When certain polyfills are used, the polyfill may not have the 'supportedLocalesOf' property. + * For example, when using the date-time-format-timezone Intl.DateTimeFormat becomes Intl.DateTimeFormatPolyfill which does not support this property. + * + * Reference: https://github.com/cerner/terra-core/issues/2914 + */ + if (Object.prototype.hasOwnProperty.call(Intl.DateTimeFormat, 'supportedLocalesOf') && Object.prototype.hasOwnProperty.call(Intl.NumberFormat, 'supportedLocalesOf') && Object.prototype.hasOwnProperty.call(Intl.PluralRules, 'supportedLocalesOf')) { + constructors = [ + Intl.DateTimeFormat, + Intl.NumberFormat, + Intl.PluralRules, + ]; + } else { + constructors = []; + } + } + } else if (typeof (Intl) === 'object' && typeof (Intl.RelativeTimeFormat) === 'function') { + if (Object.prototype.hasOwnProperty.call(Intl.RelativeTimeFormat, 'supportedLocalesOf')) { + constructors = [ + Intl.RelativeTimeFormat, + ]; + } else { + constructors = []; + } + } + } catch (error) { + constructors = []; + } + + return constructors; +}; + +const loadIntl = (locale, polyfill) => { + const fallbackLocale = locale.split('-').length > 1 ? locale.split('-')[0] : false; + + if (!hasIntlData([locale], supportedIntlConstructors(polyfill))) { + return loadLocaleData(locale, polyfill).catch((error) => { + if (fallbackLocale) { + logger.warn(`${error.message} Using ${fallbackLocale} data as the fallback locale data.`); + if (!hasIntlData([fallbackLocale], supportedIntlConstructors(polyfill))) { + return loadLocaleData(fallbackLocale, polyfill); + } + } else { + return Promise.reject(error); + } + + return Promise.resolve(); + }).catch((error) => { + logger.warn(`${error.message} Using en data as the fallback locale data.`); + + if (!hasIntlData(['en'], supportedIntlConstructors(polyfill))) { + return loadLocaleData('en', polyfill); + } + + return Promise.resolve(); + }); + } + + return Promise.resolve(); +}; + +export default loadIntl; diff --git a/packages/terra-application/src/application-base/private/loadLocaleData.js b/packages/terra-application/src/application-base/private/loadLocaleData.js new file mode 100644 index 000000000..2ce1a29ab --- /dev/null +++ b/packages/terra-application/src/application-base/private/loadLocaleData.js @@ -0,0 +1,80 @@ +/* eslint-disable import/extensions */ +const loadLocaleData = (locale, polyfill) => { + if (polyfill === 'intl') { + switch (locale) { + case 'en': + return import('intl/locale-data/jsonp/en.js'); + case 'en-AU': + return import('intl/locale-data/jsonp/en-AU.js'); + case 'en-CA': + return import('intl/locale-data/jsonp/en-CA.js'); + case 'en-US': + return import('intl/locale-data/jsonp/en-US.js'); + case 'en-GB': + return import('intl/locale-data/jsonp/en-GB.js'); + case 'es': + return import('intl/locale-data/jsonp/es.js'); + case 'es-US': + return import('intl/locale-data/jsonp/es-US.js'); + case 'es-ES': + return import('intl/locale-data/jsonp/es-ES.js'); + case 'de': + return import('intl/locale-data/jsonp/de.js'); + case 'fr': + return import('intl/locale-data/jsonp/fr.js'); + case 'fr-FR': + return import('intl/locale-data/jsonp/fr-FR.js'); + case 'nl': + return import('intl/locale-data/jsonp/nl.js'); + case 'nl-BE': + return import('intl/locale-data/jsonp/nl-BE.js'); + case 'pt': + return import('intl/locale-data/jsonp/pt.js'); + case 'pt-BR': + return import('intl/locale-data/jsonp/pt-BR.js'); + case 'sv': + return import('intl/locale-data/jsonp/sv.js'); + case 'sv-SE': + return import('intl/locale-data/jsonp/sv-SE.js'); + default: + return Promise.reject(Error(`Locale data for ${polyfill} was not supplied for the ${locale} locale.`)); + } + } else { + switch (locale) { + case 'en': + return import('@formatjs/intl-relativetimeformat/locale-data/en.js'); + case 'en-AU': + return import('@formatjs/intl-relativetimeformat/locale-data/en-AU.js'); + case 'en-CA': + return import('@formatjs/intl-relativetimeformat/locale-data/en-CA.js'); + case 'en-US': + return import('@formatjs/intl-relativetimeformat/locale-data/en-US.js'); + case 'en-GB': + return import('@formatjs/intl-relativetimeformat/locale-data/en-GB.js'); + case 'es': + case 'es-ES': + return import('@formatjs/intl-relativetimeformat/locale-data/es.js'); + case 'es-US': + return import('@formatjs/intl-relativetimeformat/locale-data/es-US.js'); + case 'de': + return import('@formatjs/intl-relativetimeformat/locale-data/de.js'); + case 'fr': + case 'fr-FR': + return import('@formatjs/intl-relativetimeformat/locale-data/fr.js'); + case 'nl': + return import('@formatjs/intl-relativetimeformat/locale-data/nl.js'); + case 'nl-BE': + return import('@formatjs/intl-relativetimeformat/locale-data/nl-BE.js'); + case 'pt': + case 'pt-BR': + return import('@formatjs/intl-relativetimeformat/locale-data/pt.js'); + case 'sv': + case 'sv-SE': + return import('@formatjs/intl-relativetimeformat/locale-data/sv.js'); + default: + return Promise.reject(Error(`Locale data for ${polyfill} was not supplied for the ${locale} locale.`)); + } + } +}; + +export default loadLocaleData; diff --git a/packages/terra-application/src/application-base/private/translationsLoaders.js b/packages/terra-application/src/application-base/private/translationsLoaders.js new file mode 100644 index 000000000..3445704e8 --- /dev/null +++ b/packages/terra-application/src/application-base/private/translationsLoaders.js @@ -0,0 +1,61 @@ +/* eslint-disable import/no-unresolved */ +import logger from '../../utils/logger'; + +const loadTranslationsFile = (locale) => { + switch (locale) { + case 'en': + return import(/* webpackChunkName: "en-translations" */ 'en.js'); + case 'en-AU': + return import(/* webpackChunkName: "en-AU-translations" */ 'en-AU.js'); + case 'en-CA': + return import(/* webpackChunkName: "en-CA-translations" */ 'en-CA.js'); + case 'en-US': + return import(/* webpackChunkName: "en-US-translations" */ 'en-US.js'); + case 'en-GB': + return import(/* webpackChunkName: "en-GB-translations" */ 'en-GB.js'); + case 'es': + return import(/* webpackChunkName: "es-translations" */ 'es.js'); + case 'es-ES': + return import(/* webpackChunkName: "es-ES-translations" */ 'es-ES.js'); + case 'de': + return import(/* webpackChunkName: "de-translations" */ 'de.js'); + case 'fr': + return import(/* webpackChunkName: "fr-translations" */ 'fr.js'); + case 'fr-FR': + return import(/* webpackChunkName: "fr-FR-translations" */ 'fr-FR.js'); + case 'nl': + return import(/* webpackChunkName: "nl-translations" */ 'nl.js'); + case 'nl-BE': + return import(/* webpackChunkName: "nl-BE-translations" */ 'nl-BE.js'); + case 'pt': + return import(/* webpackChunkName: "pt-translations" */ 'pt.js'); + case 'pt-BR': + return import(/* webpackChunkName: "pt-BR-translations" */ 'pt-BR.js'); + case 'sv': + return import(/* webpackChunkName: "sv-translations" */ 'sv.js'); + case 'sv-SE': + return import(/* webpackChunkName: "sv-SE-translations" */ 'sv-SE.js'); + default: + return Promise.reject(Error(`Translations were not supplied for the ${locale} locale.`)); + } +}; + +const loadTranslations = (locale) => { + const fallbackLocale = locale.split('-').length > 1 ? locale.split('-')[0] : false; + + return loadTranslationsFile(locale).catch((error) => { + logger.warn(`${error.message} Using ${fallbackLocale} data as the fallback locale.`); + + if (fallbackLocale) { + return loadTranslationsFile(fallbackLocale); + } + + return Promise.reject(error); + }).catch((error) => { + logger.warn(`${error.message} Using en as the fallback locale.`); + + return loadTranslationsFile('en'); + }); +}; + +export default loadTranslations; diff --git a/packages/terra-application/src/application-error-boundary/ApplicationErrorBoundary.jsx b/packages/terra-application/src/application-error-boundary/ApplicationErrorBoundary.jsx index da9c7b0f7..f1b099427 100644 --- a/packages/terra-application/src/application-error-boundary/ApplicationErrorBoundary.jsx +++ b/packages/terra-application/src/application-error-boundary/ApplicationErrorBoundary.jsx @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import StatusView from 'terra-status-view'; -import { injectIntl, intlShape } from 'react-intl'; +import { injectIntl } from 'react-intl'; import logger from '../utils/logger'; const propTypes = { @@ -15,7 +15,7 @@ const propTypes = { * @private * Intl object for translations. */ - intl: intlShape, + intl: PropTypes.shape({ formatMessage: PropTypes.func }), }; /** @@ -89,8 +89,7 @@ class ApplicationErrorBoundary extends React.Component { const activeError = this.state.error || this.errorRef.current; if (activeError) { - const errorDetails = activeError.message.toString(); - const errorText = intl.formatMessage({ id: 'terraApplication.errorBoundary.defaultErrorMessage' }, { errorDetails }); + const errorText = intl.formatMessage({ id: 'terraApplication.errorBoundary.defaultErrorMessage' }, { errorDetails: activeError.message.toString() }); return ( ( diff --git a/packages/terra-application/src/application-intl/index.js b/packages/terra-application/src/application-intl/index.js index a0a9905c4..d5d67410e 100644 --- a/packages/terra-application/src/application-intl/index.js +++ b/packages/terra-application/src/application-intl/index.js @@ -1,4 +1,4 @@ -import ApplicationIntlContext, { contextShape } from './ApplicationIntlContext'; +import ApplicationIntlContext from './ApplicationIntlContext'; import ApplicationIntlProvider from './ApplicationIntlProvider'; -export { ApplicationIntlContext, contextShape, ApplicationIntlProvider }; +export { ApplicationIntlContext, ApplicationIntlProvider }; diff --git a/packages/terra-application/src/application-navigation/ApplicationNavigation.jsx b/packages/terra-application/src/application-navigation/ApplicationNavigation.jsx index be9f8ddc2..d81a8a36a 100644 --- a/packages/terra-application/src/application-navigation/ApplicationNavigation.jsx +++ b/packages/terra-application/src/application-navigation/ApplicationNavigation.jsx @@ -3,6 +3,7 @@ import React, { } from 'react'; import PropTypes from 'prop-types'; import { v4 as uuidv4 } from 'uuid'; +import { useIntl } from 'react-intl'; import TerraApplicationNavigation from './private/ApplicationNavigation'; import { titleConfigPropType, navigationItemsPropType, extensionItemsPropType, utilityItemsPropType, userConfigPropType, userActionConfigPropType, @@ -12,7 +13,6 @@ import ApplicationErrorBoundary from '../application-error-boundary'; import ApplicationLoadingOverlay, { ApplicationLoadingOverlayProvider } from '../application-loading-overlay'; import { ApplicationStatusOverlayProvider } from '../application-status-overlay'; import { NavigationPromptCheckpoint, navigationPromptResolutionOptionsShape, getUnsavedChangesPromptOptions } from '../navigation-prompt'; -import { ApplicationIntlContext } from '../application-intl'; import ApplicationNavigationWorkspace from './private/workspace-layout/ApplicationNavigationWorkspace'; const propTypes = { @@ -156,7 +156,7 @@ const ApplicationNavigation = ({ workspace, userActionConfig, }) => { - const applicationIntl = React.useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const navigationPromptCheckpointRef = useRef(); const idRef = React.useRef(`navigation-${uuidv4()}`); diff --git a/packages/terra-application/src/application-navigation/private/common/_PopupMenu.jsx b/packages/terra-application/src/application-navigation/private/common/_PopupMenu.jsx index 4d1b62be5..d7abee992 100644 --- a/packages/terra-application/src/application-navigation/private/common/_PopupMenu.jsx +++ b/packages/terra-application/src/application-navigation/private/common/_PopupMenu.jsx @@ -107,13 +107,6 @@ const propTypes = { * A configuration object to render an action button for user Config. */ userActionConfig: userActionConfigPropType, - /** - * @private - * Given a callback function, menuClosingCallback will return a new function - * that will ensure that the various menu states are reset before the callback function - * is executed. - */ - menuClosingCallback: PropTypes.func, }; const defaultProps = { @@ -124,19 +117,7 @@ const defaultProps = { }; const PopupMenu = ({ - title, - footerText, - id, - onSelectFooterItem, - menuClosingCallback, - onSelectMenuItem, - customContent, - userConfig, - menuItems, - isHeightBounded, - showSelections, - role, - userActionConfig, + title, footerText, id, onSelectFooterItem, onSelectMenuItem, customContent, userConfig, menuItems, isHeightBounded, showSelections, role, userActionConfig, }) => { const listRef = useRef(); const buttonRef = useRef(); @@ -228,7 +209,7 @@ const PopupMenu = ({ {customContent} ) : undefined} - {userConfig ? : null} + {userConfig ? : null}
    {menuItems.map(item => ( { +const PopupMenuUser = ({ userConfig, userActionConfig, id }) => { const theme = React.useContext(ThemeContext); return ( @@ -52,15 +43,15 @@ const PopupMenuUser = ({
    {userConfig.name}
    {userConfig.detail ?
    {userConfig.detail}
    : null} { userActionConfig && ( - + )} diff --git a/packages/terra-application/src/application-navigation/private/utility-menu/_UtilityMenu.jsx b/packages/terra-application/src/application-navigation/private/utility-menu/_UtilityMenu.jsx index f3cd0e0f5..00ec93a23 100644 --- a/packages/terra-application/src/application-navigation/private/utility-menu/_UtilityMenu.jsx +++ b/packages/terra-application/src/application-navigation/private/utility-menu/_UtilityMenu.jsx @@ -61,13 +61,6 @@ const propTypes = { * A configuration object to render an action button for user Config. */ userActionConfig: userActionConfigPropType, - /** - * @private - * Given a callback function, menuClosingCallback will return a new function - * that will ensure that the various menu states are reset before the callback function - * is executed. - */ - menuClosingCallback: PropTypes.func, }; const defaultProps = { @@ -78,7 +71,7 @@ const utilityMenuSettingsKey = 'terra-application-navigation.utility-menu.settin const utilityMenuHelpKey = 'terra-application-navigation.utility-menu.help'; const UtilityMenu = ({ - userConfig, hero, onSelectSettings, onSelectHelp, menuClosingCallback, onSelectLogout, utilityItems, id, onSelectUtilityItem, isHeightBounded, intl, userActionConfig, + userConfig, hero, onSelectSettings, onSelectHelp, onSelectLogout, utilityItems, id, onSelectUtilityItem, isHeightBounded, intl, userActionConfig, }) => { let menuItems = []; menuItems = utilityItems.map(item => ({ @@ -116,7 +109,6 @@ const UtilityMenu = ({ title={intl.formatMessage({ id: 'terraApplication.navigation.utilityMenu.headerTitle' })} footerText={intl.formatMessage({ id: 'terraApplication.navigation.utilityMenu.logout' })} onSelectFooterItem={onSelectLogout} - menuClosingCallback={menuClosingCallback} userConfig={userConfig} userActionConfig={userActionConfig} customContent={hero} diff --git a/packages/terra-application/src/application-navigation/private/workspace-layout/WorkspaceLayout.jsx b/packages/terra-application/src/application-navigation/private/workspace-layout/WorkspaceLayout.jsx index 478dfba08..c25417d43 100644 --- a/packages/terra-application/src/application-navigation/private/workspace-layout/WorkspaceLayout.jsx +++ b/packages/terra-application/src/application-navigation/private/workspace-layout/WorkspaceLayout.jsx @@ -6,9 +6,9 @@ import IconPanelRight from 'terra-icon/lib/icon/IconPanelRight'; import IconPanelLeft from 'terra-icon/lib/icon/IconPanelLeft'; import ThemeContext from 'terra-theme-context'; +import { useIntl } from 'react-intl'; import { ActiveBreakpointContext } from '../../../breakpoints'; import ResizeHandle from './ResizeHandle'; -import { ApplicationIntlContext } from '../../../application-intl'; import ApplicationNavigationActionsContext from '../../ApplicationNavigationActionsContext'; import styles from './WorkspaceLayout.module.scss'; @@ -111,7 +111,7 @@ const WorkspaceLayout = ({ skipToCallback, }) => { const activeBreakpoint = React.useContext(ActiveBreakpointContext); - const applicationIntl = React.useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = React.useContext(ThemeContext); const layoutContainerRef = React.useRef(); diff --git a/packages/terra-application/src/terra-dev-site/app/Application.1.app.mdx b/packages/terra-application/src/terra-dev-site/app/Application.1.app.mdx index 625aa8aac..fbc5bf1fe 100644 --- a/packages/terra-application/src/terra-dev-site/app/Application.1.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/Application.1.app.mdx @@ -98,9 +98,9 @@ Many applications respond to the current active breakpoint to adjust for screen ### Internationalization -Terra applications must work for many locales, The Application Intl Context provides access to the frameworks i18n APIs. +Terra applications must work for many locales, `react-intl` should be utilized for i18n api's. -- [Application Intl Context API](/application/terra-application/contexts/application-intl-context) +- [react-intl](https://formatjs.io/) ### Theming diff --git a/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationBase.app.mdx b/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationBase.app.mdx index 6bf2b01f1..66755eef3 100644 --- a/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationBase.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationBase.app.mdx @@ -20,9 +20,7 @@ import ApplicationBase from 'terra-application/lib/application-base'; ### I18n -ApplicationBase exposes a prop to define the application's locale and dynamically retrieve the translated strings for that locale. Children of ApplicationBase can access translated strings by using [react-intl's](https://github.com/formatjs/formatjs/blob/master/website/docs/react-intl/components.md) provided components or by using the [ApplicationIntlContext](/application/terra-application/contexts/application-intl-context). - -Consumers of ApplicationBase should review Terra's [translation aggregation](https://engineering.cerner.com/terra-ui/guides/terra-ui/internationalization/aggregate-translations) instructions to ensure ApplicationBase can retrieve the application's translations successfully. +ApplicationBase exposes a prop to define the application's locale and dynamically retrieve the translated strings for that locale. Children of ApplicationBase can access translated strings by using react-intl's provided [components](https://formatjs.io/docs/react-intl/components), react-intl's [imperitive API](https://formatjs.io/docs/react-intl/api) or by using the [ApplicationIntlContext](/application/cerner-terra-application/contexts/application-intl-context). ### Theming @@ -30,6 +28,8 @@ ApplicationBase exposes props to define the application's theme. ApplicationBase renders a theme context provider around its children. Children can access the current theme by using the [ThemeContext](/application/terra-application/contexts/theme-context). + + ### Breakpoints ApplicationBase renders an [ActiveBreakpointContext.Provider](/application/terra-application/contexts/active-breakpoint-context) around its children. Children can access the current active breakpoint value by using the [ActiveBreakpointContext](/application/terra-application/contexts/active-breakpoint-context). @@ -59,4 +59,4 @@ ApplicationNavigation renders a [Suspense](https://reactjs.org/docs/code-splitti ### Modal Presentation -ApplicationBase renders a [ModalManager](/application/terra-application/components/modal-manager) around its children. Children can access modal disclosure APIs by using the [DisclosureManagerContext](/application/terra-application/contexts/disclosure-manager-context). +ApplicationBase renders a [ModalManager](/application/terra-application/components/modal-manager) around its children. Children can access modal disclosure APIs by using the [DisclosureManagerContext](/application/terra-application/contexts/disclosure-manager-context). \ No newline at end of file diff --git a/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationNavigation.app.mdx b/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationNavigation.app.mdx index 29427ee5d..aae19b9a8 100644 --- a/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationNavigation.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/components.2/ApplicationNavigation.app.mdx @@ -20,7 +20,7 @@ import ApplicationNavigation from 'terra-application/lib/application-navigation' ApplicationNavigation requires values from the following Contexts: -* [ApplicationIntlContext](/application/terra-application/contexts/application-intl-context) +* [react-intl](https://formatjs.io/docs/react-intl/api) ## Props diff --git a/packages/terra-application/src/terra-dev-site/app/components.2/ModalManager.app.mdx b/packages/terra-application/src/terra-dev-site/app/components.2/ModalManager.app.mdx index 403baa569..3363210c7 100644 --- a/packages/terra-application/src/terra-dev-site/app/components.2/ModalManager.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/components.2/ModalManager.app.mdx @@ -82,6 +82,64 @@ The provided component will be rendered below the standard ActionHeader and abov provide additional context to every disclosed component. This component is provided once to the ModalManager instance, not on a per-disclosure basis, and each component in the disclosure stack will be decorated with the same accessory component. +### Static Height vs. Dynamic Height + +ModalManager was intentionally designed to have static preset heights in order to work in conjunction with Terra content that can adjust responsively using the [terra-responsive-element](https://engineering.cerner.com/terra-ui/components/cerner-terra-core-docs/responsive-element/about), as well as any conditionally positioned UI elements like a [popup](https://engineering.cerner.com/terra-ui/components/cerner-terra-framework-docs/popup/popup), [multi-select dropdown](https://engineering.cerner.com/terra-ui/components/cerner-terra-core-docs/form-select/multi-select), or [date picker](https://engineering.cerner.com/terra-ui/components/cerner-terra-framework-docs/date-picker/date-picker). Having static preset heights allows for Terra to quickly present modal content without requiring extensive browser multiple-render drawing calculations that results in poor application performance. + +Some may be used to other libraries that commonly offer simple modals that can adjust the modal's height dynamically based on the content provided, but those situations only work well for when content is designed for a single presentation (i.e. is not responsive), and ones that have no higher z-index layers that require position calculation relative to the base content (i.e. no popups with pointers). + +### Creating Modal Content + +The ModalManager is intended for content which has regularly composed & designed layouts, including responsive variations. It is very grid-based, so it comes with standard heights and widths to accommodate the highly-structured assembly of content. + +When the preset size of the modal's width or height is _larger_ than the available device-screen or viewport (e.g. if you shrink down your window smaller than what the modal size was set to be), at that point the ModalManager will then "stick" near to the edge of the viewport as it's outer size and not flow offscreen. It is recommended to build the inner content with a responsive design, so when the modal is smaller than it’s preset size, the content will then know to adapt and adjust to alternate layouts accordingly to the new maximum available height and/or width as the outer size. If content is not built responsively, or if you intentionally build the content to overflow in one direction, it will then force scrolling inside of the modal. Scrolling is perfectly acceptable, but should be limited to one direction, preferably vertical-only. + +The key thing to remember is that the ModalManager, similar to a page layout, works based on the "**outside-in**" layout principal, which allows the _inside_ content to respond when the _outside_ container changes in size. The ModalManager unfortunately cannot simultaneously also follow the "**inside-out**" layout principal, which would mean the _outside_ container height grows or shrinks based on the _inside_ content size. The reason is that the inside content cannot dictate what size it would like to be at the same as as listening for when it no longer has any space remaining, which is required in order to be able to change itself to a new layout, and cannot do both (or at least not without attempting many redraws). Designers are encouraged to create structured and grid based layout designs that work well for the modal layout size options that best utilize space, similar to designing base pages within applications. + +### Sizing: Height & Width Options + +The ModalManager has two methods of setting the preferred modal height & width. The first method is by choosing from a list of easy shorthand size options that combine a predefined height and width pair, which works standard application screen ratios. The second method is more advanced and provides the ability to choose from a list of grid-based dimensions to set the height and width independently. _(Note: all values used for ModalManager are true pixels and not rem, relative em units.)_ + +Using the `size` prop within the [disclose argument API](/application/terra-application/contexts/disclosure-manager-context#disclosure-props) allows the consumer to provide a simpler implementation to set the modal preferred dimension, and typically might be used for common application disclosures of similarly sized content. _(Note: `size` should not be provided if `dimensions` are specified.)_ + +|`size` prop: Shorthand options|pixel dimensions| +|---|---| +|`tiny`| w: 320px, h: 240px | +|`small`| w: 640px, h: 420px | +|`medium`| w: 960px, h: 600px | +|**default**| w: 1120px, h: 690px _(modal size if no other details are provided)_ | +|`large`| w: 1280px, h: 870px | +|`huge`| w: 1600px, h: 960px | +|`fullscreen`| w: screen width less ~10px, h: screen height less ~10px | + +For application content that needs more specific dimensional control of modal sizes, using the `dimension` prop within the [disclose argument API](/application/terra-application/contexts/disclosure-manager-context#disclose-props) will be the implementation to choose. Consumers supply a simple object that contains both height wand width values: `{ height: '480', width: '600' }`. _(Note: `dimensions` should not be provided if a `size` is specified.)_ + +|`dimensions` prop: Width options|pixel dimensions| +|---|---| +|`width: '320'`| w: 320px, h: -- | +|`width: '480'`| w: 480px, h: -- | +|`width: '560'`| w: 560px, h: -- | +|`width: '640'`| w: 640px, h: -- | +|`width: '800'`| w: 800px, h: -- | +|`width: '960'`| w: 960px, h: -- | +|`width: '1120'`| w: 1120px, h: -- | +|`width: '1280'`| w: 1280px, h: -- | +|`width: '1440'`| w: 1440px, h: -- | +|`width: '1600'`| w: 1600px, h: -- | +|`width: '1760'`| w: 1760px, h: -- | +|`width: '1920'`| w: 1920px, h: -- | + +|`dimensions` prop: Height options|pixel dimensions| +|---|---| +|`height: '240'`| w: --, h: 240px | +|`height: '420'`| w: --, h: 420px | +|`height: '600'`| w: --, h: 600px | +|`height: '690'`| w: --, h: 690px | +|`height: '780'`| w: --, h: 780px | +|`height: '870'`| w: --, h: 870px | +|`height: '960'`| w: --, h: 960px | +|`height: '1140'`| w: --, h: 1140px | + ### Example ```jsx diff --git a/packages/terra-application/src/terra-dev-site/app/components.2/NavigationPromptCheckpoint.app.mdx b/packages/terra-application/src/terra-dev-site/app/components.2/NavigationPromptCheckpoint.app.mdx index 5d28cae53..45cbcbde6 100644 --- a/packages/terra-application/src/terra-dev-site/app/components.2/NavigationPromptCheckpoint.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/components.2/NavigationPromptCheckpoint.app.mdx @@ -62,12 +62,12 @@ to match the prompt messaging provided by the components within `terra-applicati ```jsx import React, { useContext, useRef } from 'react'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import { NavigationPromptCheckpoint, getUnsavedChangesPromptOptions } from 'terra-application/lib/navigation-prompt'; const ExampleComponent = () => { const checkpointRef = useRef(); - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); function resolvePrompts() { checkpointRef.current.resolvePrompts(getUnsavedChangesPromptOptions(applicationIntl)).then(() => { ... }); diff --git a/packages/terra-application/src/terra-dev-site/app/components.2/example/ApplicationBaseExample.jsx b/packages/terra-application/src/terra-dev-site/app/components.2/example/ApplicationBaseExample.jsx index 1c1131692..7ec14beb6 100644 --- a/packages/terra-application/src/terra-dev-site/app/components.2/example/ApplicationBaseExample.jsx +++ b/packages/terra-application/src/terra-dev-site/app/components.2/example/ApplicationBaseExample.jsx @@ -1,5 +1,5 @@ import React, { useState, useContext } from 'react'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import { ThemeContext } from 'terra-application/lib/theme'; import { ActiveBreakpointContext } from 'terra-application/lib/breakpoints'; import ApplicationLoadingOverlay from 'terra-application/lib/application-loading-overlay'; @@ -12,7 +12,7 @@ const ApplicationContentExample = () => { const [blockUnload, setBlockUnload] = useState(false); const activeBreakpoint = useContext(ActiveBreakpointContext); - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); if (throwError) { throw new Error("Testing ApplicationBase's error boundary..."); @@ -82,7 +82,7 @@ const ApplicationContentExample = () => { }; const ApplicationBaseExample = () => { - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = React.useContext(ThemeContext); return ( diff --git a/packages/terra-application/src/terra-dev-site/app/contexts.2/DisclosureManagerContext.app.mdx b/packages/terra-application/src/terra-dev-site/app/contexts.2/DisclosureManagerContext.app.mdx index 02cc76dd8..5316db8a9 100644 --- a/packages/terra-application/src/terra-dev-site/app/contexts.2/DisclosureManagerContext.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/contexts.2/DisclosureManagerContext.app.mdx @@ -99,6 +99,8 @@ disclosureManager.disclose({ }) ``` +### Disclose props + `disclose` Argument API: |Key|Is Required|Value| @@ -108,6 +110,8 @@ disclosureManager.disclose({ |`dimensions`|optional|An Object containing explicit `height` and `width` values for the disclosure. These values may not be honored due to the disclosure type or the available viewport size. `dimensions` should not be provided if a `size` is specified.
    Supported `height` values include: `'240'`, `'420'`, `'600'`, `'690'`, `'780'`, `'870'`, `'960'`, `'1140'`.
    Supported `width` values include: `'320'`, `'480'`, `'560'`, `'640'`, `'800'`, `'960'`, `'1120'`, `'1280'`, `'1440'`, `'1600'`, `'1760'`, `'1920'`.| |`content`|**required**|An Object containing a key and a component describing the component to be disclosed. See the `content` API below.| +### Content props + `content` Object API: |Key|Is Required|Value| diff --git a/packages/terra-application/src/terra-dev-site/app/demo/AppPage.jsx b/packages/terra-application/src/terra-dev-site/app/demo/AppPage.jsx index 1c53187cb..a6893f4f1 100644 --- a/packages/terra-application/src/terra-dev-site/app/demo/AppPage.jsx +++ b/packages/terra-application/src/terra-dev-site/app/demo/AppPage.jsx @@ -5,7 +5,7 @@ import PropTypes from 'prop-types'; import classNames from 'classnames/bind'; import { ActiveBreakpointContext } from 'terra-application/lib/breakpoints'; import ApplicationLoadingOverlay from 'terra-application/lib/application-loading-overlay'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import { ThemeContext } from 'terra-application/lib/theme'; import { ApplicationNavigationActionsContext } from 'terra-application/lib/application-navigation'; @@ -23,7 +23,7 @@ const AppPage = ({ pageName }) => { const [isInitialized, setIsInitialized] = useState(false); const activeBreakpoint = useContext(ActiveBreakpointContext); - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = React.useContext(ThemeContext); const [hasError, setHasError] = useState(false); diff --git a/packages/terra-application/src/terra-dev-site/app/demo/ModalPresenter.jsx b/packages/terra-application/src/terra-dev-site/app/demo/ModalPresenter.jsx index 9c56f1866..80152a4d8 100644 --- a/packages/terra-application/src/terra-dev-site/app/demo/ModalPresenter.jsx +++ b/packages/terra-application/src/terra-dev-site/app/demo/ModalPresenter.jsx @@ -7,7 +7,7 @@ import classNames from 'classnames/bind'; import Scroll from 'terra-scroll'; import { ActiveBreakpointContext } from 'terra-application/lib/breakpoints'; import ApplicationLoadingOverlay from 'terra-application/lib/application-loading-overlay'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import { DisclosureManagerContext, DisclosureManagerHeaderAdapter } from 'terra-application/lib/disclosure-manager'; import PendingActionToggle from './PendingActionToggle'; @@ -17,7 +17,7 @@ const cx = classNames.bind(styles); const ModalContent = ({ name, onSubmit }) => { const activeBreakpoint = useContext(ActiveBreakpointContext); - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const disclosureManager = useContext(DisclosureManagerContext); const [hasError, setHasError] = useState(false); diff --git a/packages/terra-application/src/terra-dev-site/app/how-to.3/use-translated-strings.app.mdx b/packages/terra-application/src/terra-dev-site/app/how-to.3/use-translated-strings.app.mdx index dd4a1240f..d36195c00 100644 --- a/packages/terra-application/src/terra-dev-site/app/how-to.3/use-translated-strings.app.mdx +++ b/packages/terra-application/src/terra-dev-site/app/how-to.3/use-translated-strings.app.mdx @@ -7,15 +7,12 @@ Every child of [ApplicationBase](/application/terra-application/components/appli application's translated strings. Please review Terra's [recommended consumption guides](https://engineering.cerner.com/terra-ui/guides/terra-ui/internationalization/building-components-which-include-translations) for more information. -Additionally, ApplicateBase provides react-intl's APIs through the [ApplicationIntlContext](/application/terra-application/contexts/application-intl-context) -for consumers seeking a modern Context implementation. - ```jsx import React, { useContext } from 'react'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; const ExampleComponent = () => { - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); return (
    @@ -33,4 +30,4 @@ export default ExampleComponent; ``` > Accessing react-intl's [legacy context value](https://reactjs.org/docs/legacy-context.html) directly is **not recommended**. -> This API is deprecated and not provided by react-intl v3.x. Terra's recommended usage patterns are supported by versions 2.x and 3.x of react-intl. +> This API is deprecated and not provided by react-intl v3.x. Terra's recommended usage patterns are supported by versions 5.x of react-intl. diff --git a/packages/terra-application/src/terra-dev-site/test/application-base/ApplicationBaseTest.test.jsx b/packages/terra-application/src/terra-dev-site/test/application-base/ApplicationBaseTest.test.jsx index 4365833ce..f675e1564 100644 --- a/packages/terra-application/src/terra-dev-site/test/application-base/ApplicationBaseTest.test.jsx +++ b/packages/terra-application/src/terra-dev-site/test/application-base/ApplicationBaseTest.test.jsx @@ -4,7 +4,7 @@ import ApplicationLoadingOverlay from 'terra-application/lib/application-loading import ApplicationStatusOverlay from 'terra-application/lib/application-status-overlay'; import ApplicationBase from 'terra-application/lib/application-base'; import NavigationPrompt from 'terra-application/lib/navigation-prompt'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import { ThemeContext } from 'terra-application/lib/theme'; const ApplicationContentTest = () => { @@ -14,7 +14,7 @@ const ApplicationContentTest = () => { const [showStatusOverlay, setShowStatusOverlay] = useState(false); const activeBreakpoint = useContext(ActiveBreakpointContext); - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = useContext(ThemeContext); if (throwError) { diff --git a/packages/terra-application/src/terra-dev-site/test/application-base/private/testOverridesTest.test.jsx b/packages/terra-application/src/terra-dev-site/test/application-base/private/testOverridesTest.test.jsx index e74eec9e1..602ca5457 100644 --- a/packages/terra-application/src/terra-dev-site/test/application-base/private/testOverridesTest.test.jsx +++ b/packages/terra-application/src/terra-dev-site/test/application-base/private/testOverridesTest.test.jsx @@ -1,9 +1,9 @@ import React, { useContext } from 'react'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import { ThemeContext } from 'terra-application/lib/theme'; const TestOverrideTest = () => { - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = useContext(ThemeContext); return (
    diff --git a/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationDisabledPromptsTest.test.jsx b/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationDisabledPromptsTest.test.jsx index 6c102d6ad..efc375831 100644 --- a/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationDisabledPromptsTest.test.jsx +++ b/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationDisabledPromptsTest.test.jsx @@ -1,7 +1,7 @@ -import React, { useState, useContext } from 'react'; +import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { ThemeContext } from 'terra-application/lib/theme'; -import { ApplicationIntlContext } from '../../../application-intl'; +import { useIntl } from 'react-intl'; import ApplicationBase from '../../../application-base'; import ApplicationNavigation from '../../../application-navigation'; import NavigationPrompt from '../../../navigation-prompt'; @@ -35,7 +35,7 @@ PageContent.propTypes = { }; const ApplicationNavigationDisabledPromptsTest = () => { - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = React.useContext(ThemeContext); const [activeNavItem, setActiveNavItem] = useState('page_1'); const [loggedOut, setLoggedOut] = useState(false); diff --git a/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationTest.test.jsx b/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationTest.test.jsx index 67fe745ae..b7ee683b3 100644 --- a/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationTest.test.jsx +++ b/packages/terra-application/src/terra-dev-site/test/application-navigation/ApplicationNavigationTest.test.jsx @@ -1,11 +1,11 @@ -import React, { useState, useContext } from 'react'; +import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { ThemeContext } from 'terra-application/lib/theme'; import ApplicationNavigation, { ApplicationNavigationActionsContext, } from 'terra-application/lib/application-navigation'; +import { useIntl } from 'react-intl'; import { WorkspaceContent } from '../../../workspace'; -import { ApplicationIntlContext } from '../../../application-intl'; import ApplicationBase from '../../../application-base'; import NavigationPrompt from '../../../navigation-prompt'; @@ -119,7 +119,7 @@ const workspace = ( ); const ApplicationNavigationTest = () => { - const applicationIntl = useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); const theme = React.useContext(ThemeContext); const [activeNavItem, setActiveNavItem] = useState('page_1'); const [loggedOut, setLoggedOut] = useState(false); diff --git a/packages/terra-application/src/workspace/Workspace.jsx b/packages/terra-application/src/workspace/Workspace.jsx index 2e26f571d..d1ec5a643 100644 --- a/packages/terra-application/src/workspace/Workspace.jsx +++ b/packages/terra-application/src/workspace/Workspace.jsx @@ -7,13 +7,13 @@ import IconSettings from 'terra-icon/lib/icon/IconSettings'; import IconPanelRight from 'terra-icon/lib/icon/IconPanelRight'; import Popup from 'terra-popup'; +import { useIntl } from 'react-intl'; import ActionMenu, { ActionMenuDivider, ActionMenuItem, ActionMenuGroup, ActionMenuRadio, } from '../action-menu'; -import { ApplicationIntlContext } from '../application-intl'; import usePortalManager, { getPortalElement } from './shared/usePortalManager'; import WorkspaceButton from './subcomponents/_WorkspaceButton'; @@ -118,7 +118,7 @@ const Workspace = ({ }) => { const [isMenuOpen, setIsMenuOpen] = useState(false); const theme = React.useContext(ThemeContext); - const intl = React.useContext(ApplicationIntlContext); + const intl = useIntl(); const sizeMenuRef = useRef(); const [workspaceContainerRef, workspacePortalsRef] = usePortalManager(activeItemKey); diff --git a/packages/terra-application/tests/jest/MockApplication.jsx b/packages/terra-application/tests/jest/MockApplication.jsx index 184841909..5aef5450e 100644 --- a/packages/terra-application/tests/jest/MockApplication.jsx +++ b/packages/terra-application/tests/jest/MockApplication.jsx @@ -1,13 +1,12 @@ import React from 'react'; import { IntlProvider } from 'react-intl'; -import { mockIntl } from 'terra-enzyme-intl'; import { ApplicationIntlContext } from '../../src/application-intl'; /* eslint-disable react/prop-types */ const MockApplication = ({ children }) => ( // eslint-disable-next-line compat/compat property })}> - + {children} diff --git a/packages/terra-application/tests/jest/action-menu/__snapshots__/ActionMenu.test.jsx.snap b/packages/terra-application/tests/jest/action-menu/__snapshots__/ActionMenu.test.jsx.snap index e9a4b7a78..b8e81bd79 100644 --- a/packages/terra-application/tests/jest/action-menu/__snapshots__/ActionMenu.test.jsx.snap +++ b/packages/terra-application/tests/jest/action-menu/__snapshots__/ActionMenu.test.jsx.snap @@ -6,7 +6,7 @@ exports[`ActionMenu should render with all props 1`] = ` className="action-container" fill={true} header={ - diff --git a/packages/terra-application/tests/jest/action-menu/__snapshots__/_ActionMenuHeader.test.jsx.snap b/packages/terra-application/tests/jest/action-menu/__snapshots__/_ActionMenuHeader.test.jsx.snap index 8625adc13..8ebdcb5ef 100644 --- a/packages/terra-application/tests/jest/action-menu/__snapshots__/_ActionMenuHeader.test.jsx.snap +++ b/packages/terra-application/tests/jest/action-menu/__snapshots__/_ActionMenuHeader.test.jsx.snap @@ -1,53 +1,92 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ActionMenuHeader should render with all props 1`] = ` -
    -
    - test label -
    -
    -
    -
    + `; exports[`ActionMenuHeader should render with minimal props 1`] = ` -
    -
    - test label -
    -
    -
    + `; diff --git a/packages/terra-application/tests/jest/application-base/ApplicationBase.test.jsx b/packages/terra-application/tests/jest/application-base/ApplicationBase.test.jsx index 0ad12d119..f7e8690f2 100644 --- a/packages/terra-application/tests/jest/application-base/ApplicationBase.test.jsx +++ b/packages/terra-application/tests/jest/application-base/ApplicationBase.test.jsx @@ -3,7 +3,7 @@ import ApplicationBase from '../../../src/application-base/ApplicationBase'; describe('ApplicationBase', () => { it('should render with minimal props', () => { - const wrapper = enzyme.shallow(( + const wrapper = enzymeIntl.mountWithIntl((
    content
    @@ -12,14 +12,11 @@ describe('ApplicationBase', () => { }); it('should render with all props', () => { - const wrapper = enzyme.shallow(( + const wrapper = enzymeIntl.mountWithIntl(( placeholder
    } + unloadPromptIsDisabled themeName="test-theme" - themeIsGlobal - fitToParentIsDisabled >
    content
    @@ -27,50 +24,21 @@ describe('ApplicationBase', () => { expect(wrapper).toMatchSnapshot(); }); - it('should render with the preferred browser local', () => { - const wrapper = enzyme.shallow(( + it('should render with the preferred browser locale', () => { + const wrapper = enzymeIntl.mountWithIntl((
    content
    )); expect(wrapper).toMatchSnapshot(); }); + it('should render without scroll', () => { - const wrapper = enzyme.shallow(( + const wrapper = enzymeIntl.mountWithIntl((
    content
    )); expect(wrapper).toMatchSnapshot(); }); - - it('should render with theme and density', () => { - const wrapper = enzyme.shallow(( - -
    content
    -
    - )); - - const themeProvider = wrapper.find('ThemeProvider'); - expect(themeProvider.props().themeName).toBe('test-theme'); - expect(themeProvider.props().density).toBe('compact'); - - const themeContext = wrapper.find('ThemeContextProvider'); - expect(themeContext.props().theme).toStrictEqual({ name: 'test-theme', className: 'test-theme', density: 'compact' }); - }); - - it('should render with density', () => { - const wrapper = enzyme.shallow(( - -
    content
    -
    - )); - - const themeProvider = wrapper.find('ThemeProvider'); - expect(themeProvider.props().themeName).toBeUndefined(); - expect(themeProvider.props().density).toBe('compact'); - - const themeContext = wrapper.find('ThemeContextProvider'); - expect(themeContext.props().theme).toStrictEqual({ name: 'terra-default-theme', className: undefined, density: 'compact' }); - }); }); diff --git a/packages/terra-application/tests/jest/application-base/__snapshots__/ApplicationBase.test.jsx.snap b/packages/terra-application/tests/jest/application-base/__snapshots__/ApplicationBase.test.jsx.snap index 6f1611cba..1f5b0718e 100644 --- a/packages/terra-application/tests/jest/application-base/__snapshots__/ApplicationBase.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-base/__snapshots__/ApplicationBase.test.jsx.snap @@ -1,228 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ApplicationBase should render with all props 1`] = ` -
    - - - - placeholder -
    - } - > - - - - - - - - } - > -
    - content -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    + `; exports[`ApplicationBase should render with minimal props 1`] = ` -
    - - - - - - - - - - - } - > -
    - content -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    + `; -exports[`ApplicationBase should render with the preferred browser local 1`] = ` -
    - - - - - - - - - - - } - > -
    - content -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -`; +exports[`ApplicationBase should render with the preferred browser locale 1`] = ``; exports[`ApplicationBase should render without scroll 1`] = ` -
    - - - - - - - - - - - } - > -
    - content -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    + `; diff --git a/packages/terra-application/tests/jest/application-base/private/i18nloader.test.js b/packages/terra-application/tests/jest/application-base/private/i18nloader.test.js new file mode 100644 index 000000000..95ce26954 --- /dev/null +++ b/packages/terra-application/tests/jest/application-base/private/i18nloader.test.js @@ -0,0 +1,201 @@ +/* eslint-disable no-console, import/no-unresolved */ +import * as relativetimeformatPolyfill from '@formatjs/intl-relativetimeformat/should-polyfill'; +import i18nLoader from '../../../../src/application-base/private/i18nLoader'; +import defaultLoadIntl from '../../../../src/application-base/private/intlLoaders'; +import loadTranslations from '../../../../src/application-base/private/translationsLoaders'; + +jest.mock('../../../../src/application-base/private/intlLoaders'); +jest.mock('../../../../src/application-base/private/translationsLoaders'); +jest.mock('@formatjs/intl-relativetimeformat/should-polyfill'); + +global.console.warn = jest.fn(); + +describe('i18nLoader', () => { + beforeEach(() => { + console.warn.mockClear(); + }); + + describe('when intl is provided by browser', () => { + beforeAll(() => { + defaultLoadIntl.mockClear(); + global.Intl = { DateTimeFormat: jest.fn(), NumberFormat: jest.fn(), PluralRules: jest.fn() }; + relativetimeformatPolyfill.shouldPolyfill = jest.fn().mockReturnValue(false); + i18nLoader('en'); + }); + afterAll(() => { global.Intl = undefined; }); + + it('does not add the intl polyfill ', () => { + expect(global.IntlPolyfill).not.toBeDefined(); + }); + + it('does not load intl data', () => { + expect(defaultLoadIntl).not.toHaveBeenCalled(); + }); + }); + + describe('when Intl.RelativeTimeFormat is not defined', () => { + beforeAll(() => { + defaultLoadIntl.mockClear(); + loadTranslations.mockClear(); + global.Intl = { DateTimeFormat: jest.fn(), NumberFormat: jest.fn(), PluralRules: jest.fn() }; + relativetimeformatPolyfill.shouldPolyfill = jest.fn().mockReturnValue(true); + }); + afterAll(() => { global.Intl = undefined; }); + + it('loads en locale', () => { + i18nLoader('en'); + + // adds the intl polyfill + expect(global.Intl).toBeDefined(); + + // loads the locale data + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'en', 'relativetimeformat'); + + // loads translations + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'en'); + }); + + it('loads es locale', () => { + i18nLoader('es'); + + // loads the new locale data on sequential load + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'es', 'relativetimeformat'); + + // loads the new translation data on sequential load + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'es'); + }); + }); + + describe('when intl is not defined', () => { + beforeAll(() => { + defaultLoadIntl.mockClear(); + loadTranslations.mockClear(); + relativetimeformatPolyfill.shouldPolyfill = jest.fn().mockReturnValue(false); + global.Intl = undefined; + }); + afterAll(() => { global.Intl = undefined; }); + + it('loads en locale', () => { + i18nLoader('en'); + + // adds the intl polyfill + expect(global.Intl).toBeDefined(); + expect(global.IntlPolyfill).toBeDefined(); + + // loads the locale data + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'en', 'intl'); + + // loads translations + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'en'); + }); + + it('loads es locale', () => { + i18nLoader('es'); + + // loads the new locale data on sequential load + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'es', 'intl'); + + // loads the new translation data on sequential load + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'es'); + }); + }); + + describe('when Intl.DataTimeFormat is not defined', () => { + beforeAll(() => { + defaultLoadIntl.mockClear(); + loadTranslations.mockClear(); + global.Intl = { DateTimeFormat: undefined }; + }); + afterAll(() => { global.Intl = undefined; }); + + it('loads en locale', () => { + i18nLoader('en'); + + // adds the intl polyfill + expect(global.Intl).toBeDefined(); + expect(global.IntlPolyfill).toBeDefined(); + + // loads the locale data + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'en', 'intl'); + + // loads translations + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'en'); + }); + + it('loads es locale', () => { + i18nLoader('es'); + + // loads the new locale data on sequential load + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'es', 'intl'); + + // loads the new translation data on sequential load + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'es'); + }); + }); + + describe('when Intl.NumberFormat is not defined', () => { + beforeAll(() => { + defaultLoadIntl.mockClear(); + loadTranslations.mockClear(); + global.Intl = { DateTimeFormat: jest.fn() }; + }); + afterAll(() => { global.Intl = undefined; }); + + it('loads en locale', () => { + i18nLoader('en'); + + // adds the intl polyfill + expect(global.Intl).toBeDefined(); + expect(global.IntlPolyfill).toBeDefined(); + + // loads the locale data + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'en', 'intl'); + + // loads translations + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'en'); + }); + + it('loads es locale', () => { + i18nLoader('es'); + + // loads the new locale data on sequential load + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'es', 'intl'); + + // loads the new translation data on sequential load + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'es'); + }); + }); + + describe('when Intl.PluralRules is not defined', () => { + beforeAll(() => { + defaultLoadIntl.mockClear(); + loadTranslations.mockClear(); + global.Intl = { DateTimeFormat: jest.fn(), NumberFormat: jest.fn() }; + }); + afterAll(() => { global.Intl = undefined; }); + + it('loads en locale', () => { + i18nLoader('en'); + + // adds the intl polyfill + expect(global.Intl).toBeDefined(); + expect(global.IntlPolyfill).toBeDefined(); + + // loads the locale data + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'en', 'intl'); + + // loads translations + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'en'); + }); + + it('loads es locale', () => { + i18nLoader('es'); + + // loads the new locale data on sequential load + expect(defaultLoadIntl).toHaveBeenNthCalledWith(1, 'es', 'intl'); + + // loads the new translation data on sequential load + expect(loadTranslations).toHaveBeenNthCalledWith(1, 'es'); + }); + }); +}); diff --git a/packages/terra-application/tests/jest/application-base/private/intlLoaders.test.js b/packages/terra-application/tests/jest/application-base/private/intlLoaders.test.js new file mode 100644 index 000000000..e4f58298b --- /dev/null +++ b/packages/terra-application/tests/jest/application-base/private/intlLoaders.test.js @@ -0,0 +1,239 @@ +import hasIntlData from 'intl-locales-supported'; +import * as loadLocaleData from '../../../../src/application-base/private/loadLocaleData'; +import loadIntl from '../../../../src/application-base/private/intlLoaders'; +import logger from '../../../../src/utils/logger'; + +jest.mock('intl-locales-supported'); +jest.mock('../../../../src/application-base/private/loadLocaleData'); +jest.mock('../../../../src/utils/logger', () => ({ + warn: jest.fn(), +})); + +const supportedIntlConstructors = [ + Intl.DateTimeFormat, + Intl.NumberFormat, + Intl.PluralRules, +]; + +describe('intlLoaders', () => { + beforeAll(() => { + hasIntlData.mockReturnValue(false); + }); + + afterAll(() => { + window.Intl.mockReset(); + }); + + describe('dev environment', () => { + beforeEach(() => { + logger.warn.mockClear(); + }); + + it('logs a warning when the regional locale is not provided and locale fallback is used', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es-US') { + return Promise.reject(Error('Locale data was not supplied for the es-US locale.')); + } + return Promise.resolve(); + }); + expect.assertions(4); + return loadIntl('es-US', 'intl').then(() => { + expect(logger.warn).toBeCalledWith('Locale data was not supplied for the es-US locale. Using es data as the fallback locale data.'); + expect(loadLocaleData.default).toHaveBeenCalledTimes(2); + expect(loadLocaleData.default).toHaveBeenNthCalledWith(2, 'es', 'intl'); + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + }); + }); + + it('logs a warning when the locale is not provided and en fallback is used', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es') { + return Promise.reject(Error('Locale data was not supplied for the es locale.')); + } + return Promise.resolve(); + }); + expect.assertions(3); + return loadIntl('es', 'intl').then(() => { + expect(logger.warn).toBeCalledWith('Locale data was not supplied for the es locale. Using en data as the fallback locale data.'); + expect(loadLocaleData.default).toHaveBeenCalledTimes(2); + expect(loadLocaleData.default).toHaveBeenNthCalledWith(2, 'en', 'intl'); + }); + }); + + it('logs a warning when the regional locale and locale are not provided and en fallback is used', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es-US') { + return Promise.reject(Error('Locale data was not supplied for the es-US locale.')); + } + if (locale === 'es') { + return Promise.reject(Error('Locale data was not supplied for the es locale.')); + } + return Promise.resolve(); + }); + expect.assertions(4); + return loadIntl('es-US', 'intl').then(() => { + expect(logger.warn).toBeCalledWith('Locale data was not supplied for the es-US locale. Using es data as the fallback locale data.'); + expect(logger.warn).toBeCalledWith('Locale data was not supplied for the es locale. Using en data as the fallback locale data.'); + expect(loadLocaleData.default).toHaveBeenCalledTimes(3); + expect(loadLocaleData.default).toHaveBeenNthCalledWith(3, 'en', 'intl'); + }); + }); + + it('throws an error when the regional locale and en fallback are not provided', () => { + loadLocaleData.default = jest.fn(() => Promise.reject(Error('Test no locale data'))); + return expect(loadIntl('es-US', 'intl')).rejects.toThrow('Test no locale data'); + }); + + it('throws an error when the locale and en fallback are not provided', () => { + loadLocaleData.default = jest.fn(() => Promise.reject(Error('Test no locale data'))); + return expect(loadIntl('es', 'intl')).rejects.toThrow('Test no locale data'); + }); + }); + + describe('production environment', () => { + beforeEach(() => { + process.env.NODE_ENV = 'production'; + logger.warn.mockClear(); + }); + + afterEach(() => { + delete process.env.NODE_ENV; + }); + + it('only fallbacks when the regional locale is not provided and locale fallback is used', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es-US') { + return Promise.reject(Error('Locale data was not supplied for the es-US locale.')); + } + return Promise.resolve(); + }); + expect.assertions(3); + return loadIntl('es-US', 'intl').then(() => { + expect(loadLocaleData.default).toHaveBeenCalledTimes(2); + expect(loadLocaleData.default).toHaveBeenNthCalledWith(2, 'es', 'intl'); + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + }); + }); + + it('only fallbacks when the regional locale and locale are not provided and en fallback is used', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es') { + return Promise.reject(Error('Locale data was not supplied for the es locale.')); + } + return Promise.resolve(); + }); + expect.assertions(2); + return loadIntl('es', 'intl').then(() => { + expect(loadLocaleData.default).toHaveBeenCalledTimes(2); + expect(loadLocaleData.default).toHaveBeenNthCalledWith(2, 'en', 'intl'); + }); + }); + + it('only fallbacks when the locale is not provided and en fallback is used', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es-US') { + return Promise.reject(Error('Locale data was not supplied for the es-US locale.')); + } + if (locale === 'es') { + return Promise.reject(Error('Locale data was not supplied for the es locale.')); + } + return Promise.resolve(); + }); + expect.assertions(2); + return loadIntl('es-US', 'intl').then(() => { + expect(loadLocaleData.default).toHaveBeenCalledTimes(3); + expect(loadLocaleData.default).toHaveBeenNthCalledWith(3, 'en', 'intl'); + }); + }); + + it('still throws an error when the locale and en fallback are not provided', () => { + loadLocaleData.default = jest.fn(() => Promise.reject(Error('Test no locale data'))); + return expect(loadIntl('es-US', 'intl')).rejects.toThrow('Test no locale data'); + }); + + it('still throws an error when the regional locale and en fallback are not provided', () => { + loadLocaleData.default = jest.fn(() => Promise.reject(Error('Test no locale data'))); + return expect(loadIntl('es', 'intl')).rejects.toThrow('Test no locale data'); + }); + }); + describe('loads locale data as needed', () => { + beforeEach(() => { + hasIntlData.mockClear(); + loadLocaleData.default = jest.fn(() => Promise.resolve()); + }); + + it('loads locale data', () => { + hasIntlData.mockReturnValue(false); + expect.assertions(3); + return loadIntl('es', 'intl').then(() => { + expect(loadLocaleData.default).toHaveBeenCalledWith('es', 'intl'); + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + expect(hasIntlData).toBeCalledWith(['es'], supportedIntlConstructors); + }); + }); + + it('does not re-load locale data when it has already been loaded', () => { + hasIntlData.mockReturnValue(true); + expect.assertions(3); + return loadIntl('es', 'intl').then(() => { + expect(loadLocaleData.default).not.toHaveBeenCalledWith('es', 'intl'); + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + expect(hasIntlData).toBeCalledWith(['es'], supportedIntlConstructors); + }); + }); + + it('does load new locale data', () => { + hasIntlData.mockReturnValue(false); + expect.assertions(3); + return loadIntl('pt', 'intl').then(() => { + expect(loadLocaleData.default).toHaveBeenCalledWith('pt', 'intl'); + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + expect(hasIntlData).toBeCalledWith(['pt'], supportedIntlConstructors); + }); + }); + + it('does not re-load region locale data if regional local has already been loaded', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es-US') { + return Promise.reject(Error('Locale data not provided for es-US locale.')); + } + + return Promise.resolve(); + }); + hasIntlData.mockReturnValue(true); + expect.assertions(3); + return loadIntl('es-US', 'intl').then(() => { + expect(loadLocaleData.default).not.toHaveBeenCalledWith('es', 'intl'); + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + expect(hasIntlData).toHaveBeenNthCalledWith(1, ['es-US'], supportedIntlConstructors); + }); + }); + + it('does not fallback locale data if fallback has already been loaded', () => { + loadLocaleData.default = jest.fn(locale => { + if (locale === 'es-US') { + return Promise.reject(Error('Locale data not provided for es-US locale.')); + } + if (locale === 'es') { + return Promise.reject(Error('Locale data not provided for es locale.')); + } + + return Promise.resolve(); + }); + hasIntlData.mockReturnValue(false).mockReturnValueOnce(true); + expect.assertions(2); + return loadIntl('es-US', 'intl').then(() => { + expect(loadLocaleData.default).not.toHaveBeenCalledWith('en', 'intl'); + expect(hasIntlData).toHaveBeenNthCalledWith(1, ['es-US'], supportedIntlConstructors); + }); + }); + + it('does not add supported Intl constructors if supportedLocalesOf property does not exist', () => { + delete Intl.DateTimeFormat.supportedLocalesOf; + delete Intl.NumberFormat.supportedLocalesOf; + return loadIntl('en', 'intl').then(() => { + expect(hasIntlData).toHaveBeenNthCalledWith(1, ['en'], []); + }); + }); + }); +}); diff --git a/packages/terra-application/tests/jest/application-base/private/loadLocaleData.test.js b/packages/terra-application/tests/jest/application-base/private/loadLocaleData.test.js new file mode 100644 index 000000000..7aefba5e4 --- /dev/null +++ b/packages/terra-application/tests/jest/application-base/private/loadLocaleData.test.js @@ -0,0 +1,83 @@ +import loadLocaleData from '../../../../src/application-base/private/loadLocaleData'; + +const locales = ['en', 'en-AU', 'en-CA', 'en-US', 'en-GB', 'es', 'es-US', 'es-ES', 'de', 'fr', 'fr-FR', 'nl', 'nl-BE', 'pt', 'pt-BR', 'sv', 'sv-SE']; + +describe('loadLocaleData', () => { + beforeEach(() => { + jest.resetModules(); + }); + + locales.forEach((locale) => { + it(`loads ${locale} intl data`, () => { + jest.doMock(`intl/locale-data/jsonp/${locale}.js`, () => ({ + localeData: `${locale} included`, + })); + expect.assertions(1); + return loadLocaleData(locale, 'intl').then((module) => { + expect(module.localeData).toEqual(`${locale} included`); + }); + }); + + if (locale === 'es-ES') { + it('loads es intl-relativetimeformat data for es-ES locale', () => { + jest.doMock('@formatjs/intl-relativetimeformat/locale-data/es.js', () => ({ + localeData: 'es included', + })); + expect.assertions(1); + return loadLocaleData(locale, 'intl-relativetimeformat').then((module) => { + expect(module.localeData).toEqual('es included'); + }); + }); + } else if (locale === 'fr-FR') { + it('loads fr intl-relativetimeformat data for fr-FR locale', () => { + jest.doMock('@formatjs/intl-relativetimeformat/locale-data/fr.js', () => ({ + localeData: 'fr included', + })); + expect.assertions(1); + return loadLocaleData(locale, 'intl-relativetimeformat').then((module) => { + expect(module.localeData).toEqual('fr included'); + }); + }); + } else if (locale === 'sv-SE') { + it('loads sv intl-relativetimeformat data for sv-SE locale', () => { + jest.doMock('@formatjs/intl-relativetimeformat/locale-data/sv.js', () => ({ + localeData: 'sv included', + })); + expect.assertions(1); + return loadLocaleData(locale, 'intl-relativetimeformat').then((module) => { + expect(module.localeData).toEqual('sv included'); + }); + }); + } else if (locale === 'pt-BR') { + it('loads pt intl-relativetimeformat data for pt-BR locale', () => { + jest.doMock('@formatjs/intl-relativetimeformat/locale-data/pt.js', () => ({ + localeData: 'pt included', + })); + expect.assertions(1); + return loadLocaleData(locale, 'intl-relativetimeformat').then((module) => { + expect(module.localeData).toEqual('pt included'); + }); + }); + } else { + it(`loads ${locale} intl-relativetimeformat data`, () => { + jest.doMock(`@formatjs/intl-relativetimeformat/locale-data/${locale}.js`, () => ({ + localeData: `${locale} included`, + })); + expect.assertions(1); + return loadLocaleData(locale, 'intl-relativetimeformat').then((module) => { + expect(module.localeData).toEqual(`${locale} included`); + }); + }); + } + }); + + it('throws error when intl locale data does not exist', () => { + expect.assertions(1); + return expect(loadLocaleData('fake', 'intl')).rejects.toThrow(); + }); + + it('throws error when intl-relativetimeformat locale data does not exist', () => { + expect.assertions(1); + return expect(loadLocaleData('fake', 'intl-relativetimeformat')).rejects.toThrow(); + }); +}); diff --git a/packages/terra-application/tests/jest/application-base/private/translationsLoaders.test.js b/packages/terra-application/tests/jest/application-base/private/translationsLoaders.test.js new file mode 100644 index 000000000..7f58b718c --- /dev/null +++ b/packages/terra-application/tests/jest/application-base/private/translationsLoaders.test.js @@ -0,0 +1,157 @@ +import loadTranslations from '../../../../src/application-base/private/translationsLoaders'; +import Logger from '../../../../src/utils/logger'; + +describe('translationsLoaders', () => { + beforeEach(() => { + jest.resetModules(); + }); + + it('loads en translation file', async () => { + jest.doMock('en.js', () => ({ + test: 'test', + })); + expect.assertions(1); + await loadTranslations('en').then(messages => { + expect(messages.test).toEqual('test'); + }); + }); + + it('logs a warning when the regional locale is not provided and locale fallback is used', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + jest.doMock('es.js', () => ({ + test: 'test-es', + })); + expect.assertions(1); + await loadTranslations('es-US').then(() => { + expect(spy).toBeCalledWith(expect.stringContaining('Translations were not supplied for the es-US locale. Using es data as the fallback locale.')); + spy.mockRestore(); + }); + }); + + it('logs a warning when the locale is not provided and en fallback is used', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + + let callCount = 0; + + // this doMock actually mocks both 'en.js' and 'es.js' due to the module name mapper mapping the en and es files to the same file. + jest.doMock('en.js', () => { + if (callCount === 0) { + callCount += 1; + throw new Error('Translations were not supplied for the es locale.'); + } + return ({ + test: 'test', + }); + }); + + await loadTranslations('es').then((messages) => { + expect(messages.test).toEqual('test'); + expect(spy).toBeCalledWith(expect.stringContaining('Translations were not supplied for the es locale. Using en as the fallback locale.')); + spy.mockRestore(); + }); + }); + + it('logs a warning when the regional locale and locale are not provided and en fallback is used', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + + let callCount = 0; + + // this doMock actually mocks 'es-ES.js' 'en.js' and 'es.js' due to the module name mapper mapping the en and es files to the same file. + jest.doMock('en.js', () => { + if (callCount === 0) { + callCount += 1; + throw new Error('Translations were not supplied for the es-ES locale.'); + } + if (callCount === 1) { + callCount += 1; + throw new Error('Translations were not supplied for the es locale.'); + } + return ({ + test: 'test', + }); + }); + await loadTranslations('es-ES').then((messages) => { + expect(messages.test).toEqual('test'); + expect(spy).toHaveBeenNthCalledWith(1, expect.stringContaining('Translations were not supplied for the es-ES locale. Using es data as the fallback locale.')); + expect(spy).toHaveBeenNthCalledWith(2, expect.stringContaining('Translations were not supplied for the es locale. Using en as the fallback locale.')); + spy.mockRestore(); + }); + }); + + it('throws an error when the locale and en fallback are not provided', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + let callCount = 0; + + // this doMock actually mocks both 'en.js' and 'es.js' due to the module name mapper mapping the en and es files to the same file. + jest.doMock('en.js', () => { + if (callCount === 0) { + callCount += 1; + throw new Error('Translations were not supplied for the es locale.'); + } + throw new Error('Translations were not supplied for the en locale.'); + }); + + await expect(loadTranslations('es')).rejects.toThrow('Translations were not supplied for the en locale.'); + spy.mockRestore(); + }); + + it('throws an error when the regional locale and en fallback are not provided', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + let callCount = 0; + + // this doMock actually mocks both 'en.js' and 'es.js' due to the module name mapper mapping the en and es files to the same file. + jest.doMock('en.js', () => { + if (callCount === 0) { + callCount += 1; + throw new Error('Translations were not supplied for the en-US locale.'); + } + throw new Error('Translations were not supplied for the en locale.'); + }); + + await expect(loadTranslations('en-US')).rejects.toThrow('Translations were not supplied for the en locale.'); + spy.mockRestore(); + }); + + describe('production environment', () => { + beforeEach(() => { + process.env.NODE_ENV = 'production'; + }); + + afterEach(() => { + delete process.env.NODE_ENV; + }); + + it('still throws an error when the locale and en fallback are not provided', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + let callCount = 0; + + // this doMock actually mocks both 'en.js' and 'es.js' due to the module name mapper mapping the en and es files to the same file. + jest.doMock('en.js', () => { + if (callCount === 0) { + callCount += 1; + throw new Error('Translations were not supplied for the es locale.'); + } + throw new Error('Translations were not supplied for the en locale.'); + }); + + await expect(loadTranslations('es')).rejects.toThrow('Translations were not supplied for the en locale.'); + spy.mockRestore(); + }); + + it('still throws an error when the regional locale and en fallback are not provided', async () => { + const spy = jest.spyOn(Logger, 'warn').mockImplementation(() => {}); + let callCount = 0; + + // this doMock actually mocks both 'en.js' and 'es.js' due to the module name mapper mapping the en and es files to the same file. + jest.doMock('en.js', () => { + if (callCount === 0) { + callCount += 1; + throw new Error('Translations were not supplied for the en-US locale.'); + } + throw new Error('Translations were not supplied for the en locale.'); + }); + await expect(loadTranslations('en-US')).rejects.toThrow('Translations were not supplied for the en locale.'); + spy.mockRestore(); + }); + }); +}); diff --git a/packages/terra-application/tests/jest/application-error-boundary/ApplicationErrorBoundary.test.jsx b/packages/terra-application/tests/jest/application-error-boundary/ApplicationErrorBoundary.test.jsx index e07fde3b6..996c2992f 100644 --- a/packages/terra-application/tests/jest/application-error-boundary/ApplicationErrorBoundary.test.jsx +++ b/packages/terra-application/tests/jest/application-error-boundary/ApplicationErrorBoundary.test.jsx @@ -7,7 +7,7 @@ describe('ApplicationErrorBoundary', () => { it('should render with minimal props', () => { const wrapper = enzymeIntl.shallowWithIntl(( - )); + )).dive(); expect(wrapper).toMatchSnapshot(); }); @@ -17,7 +17,7 @@ describe('ApplicationErrorBoundary', () => {
    Test child
    - )); + )).dive(); expect(wrapper).toMatchSnapshot(); }); @@ -42,7 +42,7 @@ describe('ApplicationErrorBoundary', () => { /** * After rendering the component again, the error view should no longer be rendered. */ - wrapper.instance().forceUpdate(); + wrapper.setProps({}); expect(wrapper).toMatchSnapshot(); expect(spy).toHaveBeenCalledTimes(1); spy.mockRestore(); diff --git a/packages/terra-application/tests/jest/application-error-boundary/__snapshots__/ApplicationErrorBoundary.test.jsx.snap b/packages/terra-application/tests/jest/application-error-boundary/__snapshots__/ApplicationErrorBoundary.test.jsx.snap index 14c0d3fa2..e5a6841c3 100644 --- a/packages/terra-application/tests/jest/application-error-boundary/__snapshots__/ApplicationErrorBoundary.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-error-boundary/__snapshots__/ApplicationErrorBoundary.test.jsx.snap @@ -1,61 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ApplicationErrorBoundary Snapshots should render error view when an error is detected 1`] = ` - + @@ -63,65 +47,49 @@ exports[`ApplicationErrorBoundary Snapshots should render error view when an err
    - + `; exports[`ApplicationErrorBoundary Snapshots should render error view when an error is detected 2`] = ` - + @@ -156,11 +124,8 @@ exports[`ApplicationErrorBoundary Snapshots should render error view when an err > - - Terra.status-view.error - + Terra.status-view.error

    - + `; exports[`ApplicationErrorBoundary Snapshots should render error view when an error is detected 3`] = ` - + - -
    -
    -
    -
    -
    -
    -

    - - - Terra.status-view.error - - -

    -
    - -
    -
    -
    -

    - terraApplication.errorBoundary.defaultErrorMessage -

    -
    -
    -
    - + +
    + - + `; exports[`ApplicationErrorBoundary Snapshots should render with children 1`] = ` @@ -348,29 +254,41 @@ exports[`ApplicationErrorBoundary Snapshots should render with minimal props 1`] diff --git a/packages/terra-application/tests/jest/application-intl/__snapshots__/ApplicationIntlProvider.test.jsx.snap b/packages/terra-application/tests/jest/application-intl/__snapshots__/ApplicationIntlProvider.test.jsx.snap index 6d9e64fa3..b41d61f10 100644 --- a/packages/terra-application/tests/jest/application-intl/__snapshots__/ApplicationIntlProvider.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-intl/__snapshots__/ApplicationIntlProvider.test.jsx.snap @@ -1,61 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ApplicationIntlProvider Snapshots should render an ApplicationIntlContext.Provider 1`] = ` - + @@ -63,5 +47,5 @@ exports[`ApplicationIntlProvider Snapshots should render an ApplicationIntlConte Test Component
    - + `; diff --git a/packages/terra-application/tests/jest/application-navigation/ApplicationNavigation.test.jsx b/packages/terra-application/tests/jest/application-navigation/ApplicationNavigation.test.jsx index e69423df2..4de579d21 100644 --- a/packages/terra-application/tests/jest/application-navigation/ApplicationNavigation.test.jsx +++ b/packages/terra-application/tests/jest/application-navigation/ApplicationNavigation.test.jsx @@ -1,7 +1,18 @@ import React from 'react'; - import ApplicationNavigation from '../../../src/application-navigation/ApplicationNavigation'; +jest.mock('react-intl', () => { + const reactIntl = jest.requireActual('react-intl'); + const intl = reactIntl.createIntl({ + locale: 'en', + }); + + return { + ...reactIntl, + useIntl: () => intl, + }; +}); + describe('ApplicationNavigation', () => { it('should render default element', () => { const shallowComponent = enzyme.shallow( diff --git a/packages/terra-application/tests/jest/application-navigation/__snapshots__/ApplicationNavigation.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/__snapshots__/ApplicationNavigation.test.jsx.snap index 4e0d1b117..fb48bf3af 100644 --- a/packages/terra-application/tests/jest/application-navigation/__snapshots__/ApplicationNavigation.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/__snapshots__/ApplicationNavigation.test.jsx.snap @@ -9,7 +9,7 @@ exports[`ApplicationNavigation should render default element 1`] = ` - + } /> - + @@ -99,7 +99,7 @@ exports[`ApplicationNavigation should render with all props 1`] = ` - + - + diff --git a/packages/terra-application/tests/jest/application-navigation/private/__snapshots__/ApplicationNavigation.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/__snapshots__/ApplicationNavigation.test.jsx.snap index e52c97759..ac52cf361 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/__snapshots__/ApplicationNavigation.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/__snapshots__/ApplicationNavigation.test.jsx.snap @@ -1,38 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ApplicationNavigation correctly applies the theme context className 1`] = ` - + -
    - +
    - - + @@ -306,7 +309,7 @@ exports[`ApplicationNavigation should render default element 1`] = `
    - - @@ -380,7 +383,7 @@ exports[`ApplicationNavigation should render with prop data at large breakpoint
    - - my test hero @@ -562,7 +565,7 @@ exports[`ApplicationNavigation should render with prop data at medium breakpoint
    - @@ -619,7 +622,7 @@ exports[`ApplicationNavigation should render with prop data at medium breakpoint
    - - my test hero diff --git a/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenu.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenu.test.jsx.snap index 325abee4e..baa3c3205 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenu.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenu.test.jsx.snap @@ -6,7 +6,7 @@ exports[`PopupMenu should render default element 1`] = ` fill={false} footer={} header={ - } @@ -51,7 +51,7 @@ exports[`PopupMenu should render prop data 1`] = ` /> } header={ - @@ -111,7 +111,7 @@ exports[`PopupMenu should render with height bounded 1`] = ` fill={true} footer={} header={ - diff --git a/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenuUser.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenuUser.test.jsx.snap index d93f869df..94935ea9e 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenuUser.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/common/__snapshots__/PopupMenuUser.test.jsx.snap @@ -10,7 +10,7 @@ exports[`PopupMenuUser should render default element 1`] = `
    - - @@ -63,7 +62,7 @@ exports[`DrawerMenuUser should render with large variant 1`] = `
    - @@ -113,7 +111,7 @@ exports[`DrawerMenuUser should render with small variant 1`] = `
    - diff --git a/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/CompactHeader.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/CompactHeader.test.jsx.snap index 7090a8a96..9f2c492b4 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/CompactHeader.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/CompactHeader.test.jsx.snap @@ -1,62 +1,46 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`CompactHeader should render default element 1`] = ` - + - + `; exports[`CompactHeader should render title element 1`] = ` - - + `; exports[`CompactHeader should render with function callbacks 1`] = ` - - - +
      - + `; exports[`CompactHeader should render with ids for navigation and extension items 1`] = ` - - - +
      - + `; exports[`CompactHeader should render with menu callback 1`] = ` - - + `; exports[`CompactHeader should render with skip callback 1`] = ` - - + `; diff --git a/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/Header.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/Header.test.jsx.snap index 8744494ad..95edded34 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/Header.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/header/__snapshots__/Header.test.jsx.snap @@ -1,61 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Header should render default element 1`] = ` - +
      - + - +
    - + `; exports[`Header should render title element 1`] = ` - - + - +
    - + `; exports[`Header should render with function callbacks 1`] = ` - } - intl={ - Object { - "defaultFormats": Object {}, - "defaultLocale": "en", - "formatDate": [Function], - "formatHTMLMessage": [Function], - "formatMessage": [Function], - "formatNumber": [Function], - "formatPlural": [Function], - "formatRelative": [Function], - "formatTime": [Function], - "formats": Object {}, - "formatters": Object { - "getDateTimeFormat": [Function], - "getMessageFormat": [Function], - "getNumberFormat": [Function], - "getPluralFormat": [Function], - "getRelativeFormat": [Function], - }, - "locale": "en", - "messages": null, - "now": [Function], - "onError": [Function], - "textComponent": "span", - "timeZone": null, - } - } navigationItems={ Array [ Object { @@ -463,29 +429,41 @@ exports[`Header should render with function callbacks 1`] = ` } intl={ Object { + "$t": [Function], "defaultFormats": Object {}, "defaultLocale": "en", + "defaultRichTextElements": undefined, + "fallbackOnEmptyString": true, "formatDate": [Function], - "formatHTMLMessage": [Function], + "formatDateTimeRange": [Function], + "formatDateToParts": [Function], + "formatDisplayName": [Function], + "formatList": [Function], + "formatListToParts": [Function], "formatMessage": [Function], "formatNumber": [Function], + "formatNumberToParts": [Function], "formatPlural": [Function], - "formatRelative": [Function], + "formatRelativeTime": [Function], "formatTime": [Function], + "formatTimeToParts": [Function], "formats": Object {}, "formatters": Object { "getDateTimeFormat": [Function], + "getDisplayNames": [Function], + "getListFormat": [Function], "getMessageFormat": [Function], "getNumberFormat": [Function], - "getPluralFormat": [Function], - "getRelativeFormat": [Function], + "getPluralRules": [Function], + "getRelativeTimeFormat": [Function], }, "locale": "en", "messages": null, - "now": [Function], "onError": [Function], - "textComponent": "span", - "timeZone": null, + "onWarn": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": undefined, + "wrapRichTextChunksInFragment": undefined, } } navigationItems={ @@ -582,7 +560,7 @@ exports[`Header should render with function callbacks 1`] = `
    - - +
    - - +
    - -
    - +
    - +
    - + `; exports[`Header should render with navigation and extension item ids 1`] = ` - } id="test-application" - intl={ - Object { - "defaultFormats": Object {}, - "defaultLocale": "en", - "formatDate": [Function], - "formatHTMLMessage": [Function], - "formatMessage": [Function], - "formatNumber": [Function], - "formatPlural": [Function], - "formatRelative": [Function], - "formatTime": [Function], - "formats": Object {}, - "formatters": Object { - "getDateTimeFormat": [Function], - "getMessageFormat": [Function], - "getNumberFormat": [Function], - "getPluralFormat": [Function], - "getRelativeFormat": [Function], - }, - "locale": "en", - "messages": null, - "now": [Function], - "onError": [Function], - "textComponent": "span", - "timeZone": null, - } - } navigationItems={ Array [ Object { @@ -1274,29 +1273,41 @@ exports[`Header should render with navigation and extension item ids 1`] = ` id="test-application" intl={ Object { + "$t": [Function], "defaultFormats": Object {}, "defaultLocale": "en", + "defaultRichTextElements": undefined, + "fallbackOnEmptyString": true, "formatDate": [Function], - "formatHTMLMessage": [Function], + "formatDateTimeRange": [Function], + "formatDateToParts": [Function], + "formatDisplayName": [Function], + "formatList": [Function], + "formatListToParts": [Function], "formatMessage": [Function], "formatNumber": [Function], + "formatNumberToParts": [Function], "formatPlural": [Function], - "formatRelative": [Function], + "formatRelativeTime": [Function], "formatTime": [Function], + "formatTimeToParts": [Function], "formats": Object {}, "formatters": Object { "getDateTimeFormat": [Function], + "getDisplayNames": [Function], + "getListFormat": [Function], "getMessageFormat": [Function], "getNumberFormat": [Function], - "getPluralFormat": [Function], - "getRelativeFormat": [Function], + "getPluralRules": [Function], + "getRelativeTimeFormat": [Function], }, "locale": "en", "messages": null, - "now": [Function], "onError": [Function], - "textComponent": "span", - "timeZone": null, + "onWarn": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": undefined, + "wrapRichTextChunksInFragment": undefined, } } navigationItems={ @@ -1393,7 +1404,7 @@ exports[`Header should render with navigation and extension item ids 1`] = `
    - - +
    - - +
    - -
    - +
    - +
    -
    + `; exports[`Header should render with skip callback 1`] = ` -
    - + - +
    - + `; diff --git a/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tab.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tab.test.jsx.snap index 186ea7380..34d5535b8 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tab.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tab.test.jsx.snap @@ -26,7 +26,7 @@ exports[`Tab should render prop data 1`] = ` - diff --git a/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/TabRollup.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/TabRollup.test.jsx.snap index e3f7ccbbe..5b6c055f3 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/TabRollup.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/TabRollup.test.jsx.snap @@ -65,7 +65,7 @@ exports[`TabRollup should render prop data 1`] = ` - diff --git a/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tabs.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tabs.test.jsx.snap index 6723f091f..12189c3d4 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tabs.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/tabs/__snapshots__/Tabs.test.jsx.snap @@ -1,61 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Tabs should render default element 1`] = ` - + - + `; exports[`Tabs should render prop data 1`] = ` - - + `; exports[`Tabs should render with hasCount set to true when notifications are set to 0 1`] = ` - - + `; diff --git a/packages/terra-application/tests/jest/application-navigation/private/utility-menu/UtilityMenu.test.jsx b/packages/terra-application/tests/jest/application-navigation/private/utility-menu/UtilityMenu.test.jsx index ee52353bf..c4cba4863 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/utility-menu/UtilityMenu.test.jsx +++ b/packages/terra-application/tests/jest/application-navigation/private/utility-menu/UtilityMenu.test.jsx @@ -5,7 +5,7 @@ import UtilityMenu from '../../../../../src/application-navigation/private/utili describe('UtilityMenu', () => { it('should render default element', () => { const mountComponent = enzymeIntl.mountWithIntl( - , + , ); expect(mountComponent).toMatchSnapshot(); @@ -13,8 +13,7 @@ describe('UtilityMenu', () => { it('should render with function callbacks', () => { const mountComponent = enzymeIntl.mountWithIntl( - jest.fn()} + my test hero
    } userConfig={{ name: 'user-name', @@ -43,7 +42,7 @@ describe('UtilityMenu', () => { const mockCallBack = jest.fn(); const mountComponent = enzymeIntl.mountWithIntl( - , ); diff --git a/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenu.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenu.test.jsx.snap index c10ecf26f..f603c0232 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenu.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenu.test.jsx.snap @@ -1,285 +1,295 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`UtilityMenu should render default element 1`] = ` - + - - } - header={ - - } - setFocusOnContainer={false} + -
    } + header={ + + } + setFocusOnContainer={false} >
    - - - - -
    -

    - terraApplication.navigation.utilityMenu.headerTitle -

    +

    + terraApplication.navigation.utilityMenu.headerTitle +

    +
    -
    -
    - - - Terra.actionHeader.close.description - - - - + Terra.actionHeader.close.description + + + - Terra.actionHeader.maximize.description - - - - + Terra.actionHeader.maximize.description + + + - Terra.actionHeader.minimize.description - - + + Terra.actionHeader.minimize.description + + +
    -
    - - - -
    -
    -
    - + + + +
    +
    -
    -
      +
      +
        +
    -
    - -
    -
    - - -
    - - + +
    +
    + + +
    + + +
    -
    - - - + + + + `; exports[`UtilityMenu should render with function callbacks 1`] = ` - my test hero
    } - intl={ - Object { - "defaultFormats": Object {}, - "defaultLocale": "en", - "formatDate": [Function], - "formatHTMLMessage": [Function], - "formatMessage": [Function], - "formatNumber": [Function], - "formatPlural": [Function], - "formatRelative": [Function], - "formatTime": [Function], - "formats": Object {}, - "formatters": Object { - "getDateTimeFormat": [Function], - "getMessageFormat": [Function], - "getNumberFormat": [Function], - "getPluralFormat": [Function], - "getRelativeFormat": [Function], - }, - "locale": "en", - "messages": null, - "now": [Function], - "onError": [Function], - "textComponent": "span", - "timeZone": null, - } - } - menuClosingCallback={[Function]} onSelectHelp={[MockFunction]} onSelectLogout={[MockFunction]} onSelectSettings={[MockFunction]} @@ -314,61 +324,55 @@ exports[`UtilityMenu should render with function callbacks 1`] = ` ] } > - my test hero
    } - footerText="terraApplication.navigation.utilityMenu.logout" - isHeightBounded={false} - menuClosingCallback={[Function]} - menuItems={ - Array [ - Object { - "dataAttrs": undefined, - "icon": - my icon - , - "id": undefined, - "key": "my-test-key-2", - "metaData": Object { - "meta": "metaData", - }, - "text": "test-text-2", - }, - Object { - "dataAttrs": Object { - "data-navigation-utility-item-settings": "true", - }, - "icon": , - "id": undefined, - "key": "terra-application-navigation.utility-menu.settings", - "text": "terraApplication.navigation.utilityMenu.settings", - }, - Object { - "dataAttrs": Object { - "data-navigation-utility-item-help": "true", - }, - "icon": , - "id": undefined, - "key": "terra-application-navigation.utility-menu.help", - "text": "terraApplication.navigation.utilityMenu.help", + intl={ + Object { + "$t": [Function], + "defaultFormats": Object {}, + "defaultLocale": "en", + "defaultRichTextElements": undefined, + "fallbackOnEmptyString": true, + "formatDate": [Function], + "formatDateTimeRange": [Function], + "formatDateToParts": [Function], + "formatDisplayName": [Function], + "formatList": [Function], + "formatListToParts": [Function], + "formatMessage": [Function], + "formatNumber": [Function], + "formatNumberToParts": [Function], + "formatPlural": [Function], + "formatRelativeTime": [Function], + "formatTime": [Function], + "formatTimeToParts": [Function], + "formats": Object {}, + "formatters": Object { + "getDateTimeFormat": [Function], + "getDisplayNames": [Function], + "getListFormat": [Function], + "getMessageFormat": [Function], + "getNumberFormat": [Function], + "getPluralRules": [Function], + "getRelativeTimeFormat": [Function], }, - ] + "locale": "en", + "messages": null, + "onError": [Function], + "onWarn": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": undefined, + "wrapRichTextChunksInFragment": undefined, + } } - onSelectFooterItem={[MockFunction]} - onSelectMenuItem={[Function]} - role="listbox" - showSelections={false} - title="terraApplication.navigation.utilityMenu.headerTitle" + onSelectHelp={[MockFunction]} + onSelectLogout={[MockFunction]} + onSelectSettings={[MockFunction]} + onSelectUtilityItem={[MockFunction]} userActionConfig={ Object { "text": "Edit Photo", @@ -383,293 +387,432 @@ exports[`UtilityMenu should render with function callbacks 1`] = ` "name": "user-name", } } + utilityItems={ + Array [ + Object { + "icon": + my icon + , + "id": "test-utility-2-id", + "key": "my-test-key-2", + "metaData": Object { + "meta": "metaData", + }, + "text": "test-text-2", + }, + ] + } > - - } - /> + + my test hero +
    + } + footerText="terraApplication.navigation.utilityMenu.logout" + isHeightBounded={false} + menuItems={ + Array [ + Object { + "dataAttrs": undefined, + "icon": + my icon + , + "id": undefined, + "key": "my-test-key-2", + "metaData": Object { + "meta": "metaData", + }, + "text": "test-text-2", + }, + Object { + "dataAttrs": Object { + "data-navigation-utility-item-settings": "true", + }, + "icon": , + "id": undefined, + "key": "terra-application-navigation.utility-menu.settings", + "text": "terraApplication.navigation.utilityMenu.settings", + }, + Object { + "dataAttrs": Object { + "data-navigation-utility-item-help": "true", + }, + "icon": , + "id": undefined, + "key": "terra-application-navigation.utility-menu.help", + "text": "terraApplication.navigation.utilityMenu.help", + }, + ] } - header={ - + onSelectFooterItem={[MockFunction]} + onSelectMenuItem={[Function]} + role="listbox" + showSelections={false} + title="terraApplication.navigation.utilityMenu.headerTitle" + userActionConfig={ + Object { + "text": "Edit Photo", + "userActionCallback": [Function], + } + } + userConfig={ + Object { + "detail": "user-detail", + "imageSrc": "user-src", + "initials": "user-initials", + "name": "user-name", + } } - setFocusOnContainer={false} > -
    + } + /> + } + header={ + + } + setFocusOnContainer={false} >
    - - - - -
    -

    - terraApplication.navigation.utilityMenu.headerTitle -

    +

    + terraApplication.navigation.utilityMenu.headerTitle +

    +
    -
    -
    - - - Terra.actionHeader.close.description - - - - + Terra.actionHeader.close.description + + + - Terra.actionHeader.maximize.description - - - - + Terra.actionHeader.maximize.description + + + - Terra.actionHeader.minimize.description - - + + Terra.actionHeader.minimize.description + + +
    -
    - - - -
    - -
    - + + + +
    +
    -
    -
    - my test hero +
    +
    + my test hero +
    -
    - -
    - - + -
    - user-name + user-name + US + + } + src="user-src" + variant="default" + > + user-name US - } - src="user-src" - variant="default" - > - user-name - - US - - -
    -
    -
    -
    -
    -
    - user-name + +
    + +
    - user-detail -
    -
    +
    + user-detail +
    + - + + +
    -
    - -
      - - my icon - - } - key="my-test-key-2" - loopFocus={[Function]} - onSelect={[Function]} - parentRole="listbox" - showSelections={false} - text="test-text-2" + +
        -
      • -
        + my icon -
        -
        - test-text-2 -
        - +
      • - 0 + + my icon +
        - -
      • - - - } - key="terra-application-navigation.utility-menu.settings" - loopFocus={[Function]} - onSelect={[Function]} - parentRole="listbox" - showSelections={false} - text="terraApplication.navigation.utilityMenu.settings" - > -
      • + test-text-2 +
    + +
    + 0 +
    +
    + + + -
    + icon={ + } + key="terra-application-navigation.utility-menu.settings" + loopFocus={[Function]} + onSelect={[Function]} + parentRole="listbox" + showSelections={false} + text="terraApplication.navigation.utilityMenu.settings" + > +
  • +
    - - - - - - -
    -
    - terraApplication.navigation.utilityMenu.settings -
    - + + + + + +
  • - 0 + terraApplication.navigation.utilityMenu.settings
    - - -
    - - } - key="terra-application-navigation.utility-menu.help" - loopFocus={[Function]} - onSelect={[Function]} - parentRole="listbox" - showSelections={false} - text="terraApplication.navigation.utilityMenu.help" - > -
  • +
    + 0 +
    + +
  • +
    + -
    + icon={ + } + key="terra-application-navigation.utility-menu.help" + loopFocus={[Function]} + onSelect={[Function]} + parentRole="listbox" + showSelections={false} + text="terraApplication.navigation.utilityMenu.help" + > +
  • +
    - - - - - - -
    -
    - terraApplication.navigation.utilityMenu.help -
    - + + + + + +
  • - 0 + terraApplication.navigation.utilityMenu.help
    - - -
    -
+ +
+ 0 +
+
+ + + + - - - -
- - } + +
+
- + } > -
- - + + +
-
- - + + + - - - - + + + + `; exports[`UtilityMenu should render with skip callback 1`] = ` - - - - } - /> - } - header={ - + + -
+ } + /> + } + header={ + + } + setFocusOnContainer={false} >
- - - - -
-

- terraApplication.navigation.utilityMenu.headerTitle -

+

+ terraApplication.navigation.utilityMenu.headerTitle +

+
-
-
- - - Terra.actionHeader.close.description - - - - + Terra.actionHeader.close.description + + + - Terra.actionHeader.maximize.description - - - - + Terra.actionHeader.maximize.description + + + - Terra.actionHeader.minimize.description - - + + Terra.actionHeader.minimize.description + + +
-
- - - -
- -
- + + + +
+
-
-
    +
    +
      +
-
- -
-
- - } + +
+
- + } > -
- - + + +
-
- - + + + - -
-
-
+ + + + `; diff --git a/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenuHeaderButton.test.jsx.snap b/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenuHeaderButton.test.jsx.snap index 7744e1bd4..b7b785359 100644 --- a/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenuHeaderButton.test.jsx.snap +++ b/packages/terra-application/tests/jest/application-navigation/private/utility-menu/__snapshots__/UtilityMenuHeaderButton.test.jsx.snap @@ -1,61 +1,45 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`UtilityMenuHeaderButton should render default element 1`] = ` - + @@ -106,66 +90,51 @@ exports[`UtilityMenuHeaderButton should render default element 1`] = ` - + `; exports[`UtilityMenuHeaderButton should render with click callback 1`] = ` - - + `; exports[`UtilityMenuHeaderButton should render with function callbacks 1`] = ` - - - +
-
+ `; diff --git a/packages/terra-application/tests/jest/disclosure-manager/__snapshots__/DisclosureContainer.test.jsx.snap b/packages/terra-application/tests/jest/disclosure-manager/__snapshots__/DisclosureContainer.test.jsx.snap index c254dd6e9..472bd4ebf 100644 --- a/packages/terra-application/tests/jest/disclosure-manager/__snapshots__/DisclosureContainer.test.jsx.snap +++ b/packages/terra-application/tests/jest/disclosure-manager/__snapshots__/DisclosureContainer.test.jsx.snap @@ -8,12 +8,12 @@ exports[`DisclosureContainer should render the provided children 1`] = ` } } > - + } + header={} setFocusOnContainer={false} > @@ -24,6 +24,6 @@ exports[`DisclosureContainer should render the provided children 1`] = ` - + `; diff --git a/packages/terra-application/tests/jest/workspace/Workspace.test.jsx b/packages/terra-application/tests/jest/workspace/Workspace.test.jsx index cc32cee10..b7da0f7ab 100644 --- a/packages/terra-application/tests/jest/workspace/Workspace.test.jsx +++ b/packages/terra-application/tests/jest/workspace/Workspace.test.jsx @@ -10,6 +10,18 @@ import MockApplication from '../MockApplication'; const testMetaData1 = { data: 1 }; const testMetaData2 = { data: 1 }; +jest.mock('react-intl', () => { + const reactIntl = jest.requireActual('react-intl'); + const intl = reactIntl.createIntl({ + locale: 'en', + }); + + return { + ...reactIntl, + useIntl: () => intl, + }; +}); + const TestWorkspace = (props) => ( { browser.url('/raw/tests/terra-application/application-navigation/private/application-navigation/application-navigation'); $('[data-application-header-utility="true"]').click(); $('[data-terra-popup-content="true"]').waitForDisplayed(); - $('[data-navigation-utility-item-logout="true"]').click(); + $('/html/body/div[3]/div/div/div[2]/div/div[3]/div/div/button').click(); browser.pause(50); Terra.validates.element('utilities display properly and onSelectLogout called on clicking logout'); }); @@ -130,8 +130,9 @@ Terra.describeViewports('ApplicationNavigation - Large', ['large'], () => { Terra.validates.element('Popup Menu Open'); }); + // TODO: investigate validity of this test it('close popup menu', () => { - $('[data-navigation-popupmenu-item-user-action="true"]').click(); + $('/html/body/div[3]/div/div/div[2]/div/div[2]/div/div/div/div[2]/button').click(); Terra.validates.element('Popup menu Closed'); }); }); diff --git a/packages/terra-dev-site/CHANGELOG.md b/packages/terra-dev-site/CHANGELOG.md index fb31ca00b..5773e00d0 100644 --- a/packages/terra-dev-site/CHANGELOG.md +++ b/packages/terra-dev-site/CHANGELOG.md @@ -2,6 +2,30 @@ ## Unreleased +* The following changes from v7 are added: + * Fixed clipping issue of test pages on dev-site. + * Fixed scroll issue of doc pages with longer content. + * Locked `uuid` dependency to `3.4.0`. + * Updated jest snapshot for terra-icon and terra-button changes. + * Updated wdio snapshot to fix build. + +## 8.1.0 - (June 22, 2022) + +* Changed + * Minor dependency version bump + +## 8.0.1 - (June 7, 2022) + +* Fixed + * Updated `terra-application` peerDependency to v2. + +## 8.0.0 - (May 31, 2022) + +* Breaking + * Dropped react-intl v2-v4 support. + +--- + ## 7.14.0 - (May 1, 2024) * Changed diff --git a/packages/terra-dev-site/package.json b/packages/terra-dev-site/package.json index 5fe44811e..63ff67822 100644 --- a/packages/terra-dev-site/package.json +++ b/packages/terra-dev-site/package.json @@ -1,6 +1,6 @@ { "name": "@cerner/terra-dev-site", - "version": "7.14.0", + "version": "8.1.0", "description": "Dynamically builds a react-hash-routed site based on site configuration, navigation configuration and component configuration.", "author": "Cerner Corporation", "repository": { @@ -74,7 +74,7 @@ "peerDependencies": { "react": "16", "react-dom": "16", - "terra-application": "1", + "terra-application": "2", "webpack": "4 || 5" }, "scripts": { diff --git a/packages/terra-dev-site/src/layouts/secondary-navigation-layout/side-nav/SideNavHeader.jsx b/packages/terra-dev-site/src/layouts/secondary-navigation-layout/side-nav/SideNavHeader.jsx index 07f88b6ff..53b1ed209 100644 --- a/packages/terra-dev-site/src/layouts/secondary-navigation-layout/side-nav/SideNavHeader.jsx +++ b/packages/terra-dev-site/src/layouts/secondary-navigation-layout/side-nav/SideNavHeader.jsx @@ -4,7 +4,7 @@ import classNames from 'classnames/bind'; import Button, { ButtonVariants } from 'terra-button'; import IconLeft from 'terra-icon/lib/icon/IconLeft'; import { ThemeContext } from 'terra-application/lib/theme'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import styles from './SideNavHeader.module.scss'; @@ -26,7 +26,7 @@ const SideNavHeader = ({ onRequestClose, label, }) => { const theme = React.useContext(ThemeContext); - const applicationIntl = React.useContext(ApplicationIntlContext); + const applicationIntl = useIntl(); return (
diff --git a/packages/terra-dev-site/src/pages/page/PageHeader.jsx b/packages/terra-dev-site/src/pages/page/PageHeader.jsx index 0c5f08557..c7579b6d8 100644 --- a/packages/terra-dev-site/src/pages/page/PageHeader.jsx +++ b/packages/terra-dev-site/src/pages/page/PageHeader.jsx @@ -7,7 +7,7 @@ import Popup from 'terra-popup'; import ThemeContext from 'terra-theme-context'; import ActionMenu, { ActionMenuItem } from 'terra-application/lib/action-menu'; -import { ApplicationIntlContext } from 'terra-application/lib/application-intl'; +import { useIntl } from 'react-intl'; import useElementSize, { breakpointFilter } from '../../shared/useElementSize'; import PageContainerContext from '../../layouts/page-container/PageContainerContext'; @@ -37,7 +37,7 @@ const propTypes = { const PageHeader = ({ actions, label, onSelectBack, }) => { - const intl = React.useContext(ApplicationIntlContext); + const intl = useIntl(); const pageContainerContext = React.useContext(PageContainerContext); const theme = React.useContext(ThemeContext); diff --git a/packages/terra-polyfill/CHANGELOG.md b/packages/terra-polyfill/CHANGELOG.md index 64d252b0b..bc89e0a7c 100644 --- a/packages/terra-polyfill/CHANGELOG.md +++ b/packages/terra-polyfill/CHANGELOG.md @@ -2,6 +2,17 @@ ## Unreleased +## 1.4.0 - (June 22, 2022) + +* Changed + * updated condition statement added to check `inert` polyfill is required. + * updated `wicg-inert` to latest version. + +## 1.3.0 - (June 7, 2022) + +* Added + * Added `@formatjs/intl-datetimeformat` polyfill to support date-time functions in ie 10. + ## 1.2.0 - (February 14, 2022) * Changed diff --git a/packages/terra-polyfill/package.json b/packages/terra-polyfill/package.json index cc78fe6cb..fc012c6ac 100644 --- a/packages/terra-polyfill/package.json +++ b/packages/terra-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "@cerner/terra-polyfill", - "version": "1.2.0", + "version": "1.4.0", "description": "This package contains polyfills to support the minimum requirements and commonly used features of terra-application and its consumers.", "author": "Cerner Corporation", "repository": {