From 8142fc39accb5c802e9d686e2f7d36ecd389a8cc Mon Sep 17 00:00:00 2001 From: Syed Ali Abbas Zaidi Date: Fri, 26 Jan 2024 12:12:59 +0500 Subject: [PATCH] feat: migrate enzyme to RTL --- .github/workflows/ci.yml | 2 - package-lock.json | 6226 ++---- package.json | 3 +- .../Admin/AIAnalyticsSummary.test.jsx | 31 +- src/components/Admin/Admin.test.jsx | 372 +- .../AIAnalyticsSummary.test.jsx.snap | 90 +- .../Admin/__snapshots__/Admin.test.jsx.snap | 16855 ++++++++-------- .../AdminRegisterPage.test.jsx | 13 +- .../stepper/ReviewItem.test.jsx | 7 +- .../table/CourseSearchResultsCells.test.jsx | 11 +- ...BulkEnrollmentResultsDownloadPage.test.jsx | 7 +- .../CodeAssignmentModal/BulkAssignFields.jsx | 2 +- .../IndividualAssignFields.jsx | 2 +- .../tests/ManageCodesTab.test.jsx | 80 +- .../ManageCodesTab.test.jsx.snap | 603 +- .../CodeSearchResults.test.jsx | 79 +- .../CodeSearchResults.test.jsx.snap | 2117 +- ...edLearnersForInactiveCoursesTable.test.jsx | 31 +- ...rnersForInactiveCoursesTable.test.jsx.snap | 602 +- .../EnterpriseApp/EnterpriseAppSkeleton.jsx | 2 +- .../EnterpriseAppSkeleton.test.jsx.snap | 1 + .../EnterpriseList/EnterpriseList.test.jsx | 65 +- src/components/EnterpriseList/index.jsx | 4 +- src/components/Header/Header.test.jsx | 19 +- src/components/Img/index.jsx | 2 +- .../LearnerActivityTable.test.jsx | 43 +- .../LearnerActivityTable.test.jsx.snap | 2456 ++- .../__snapshots__/NumberCard.test.jsx.snap | 275 +- .../PastWeekPassedLearnersTable.test.jsx | 25 +- .../PastWeekPassedLearnersTable.test.jsx.snap | 426 +- .../ReportingConfig/ReportingConfigForm.jsx | 1 + .../ReportingConfigForm.test.jsx | 9 +- src/components/SearchBar/SearchBar.test.jsx | 15 +- .../__snapshots__/SearchBar.test.jsx.snap | 109 +- src/components/SidebarToggle/index.jsx | 2 +- .../UserActivationPage.test.jsx | 18 +- .../DownloadCsvButton.test.jsx | 15 +- .../EnterpriseApp/EnterpriseApp.test.jsx | 5 +- .../Footer/__snapshots__/Footer.test.jsx.snap | 4 + src/containers/Header/Header.test.jsx | 46 +- .../InviteLearnersModal.test.jsx | 6 +- .../SaveTemplateButton.test.jsx.snap | 84 +- .../SidebarToggle/SidebarToggle.test.jsx | 25 +- src/hooks/tests/useInterval.test.jsx | 6 +- src/setupTest.js | 4 - 45 files changed, 13856 insertions(+), 16944 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c8d85d29a..5c79e15cce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,8 +22,6 @@ jobs: run: make validate-no-uncommitted-package-lock-changes - name: Install dependencies run: npm ci - - name: Lint - run: npm run lint - name: Test run: npm run test - name: Coverage diff --git a/package-lock.json b/package-lock.json index 104b403d0c..f52b77d6d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,15 +64,14 @@ "devDependencies": { "@edx/browserslist-config": "1.0.0", "@edx/frontend-build": "^12.9.0-alpha.1", + "@edx/react-unit-test-utils": "1.7.1", "@faker-js/faker": "^7.6.0", "@testing-library/dom": "9.3.1", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "^11.2.7", "@testing-library/react-hooks": "5.0.3", "@testing-library/user-event": "12.8.3", - "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "css-loader": "5.2.6", - "enzyme": "3.11.0", "husky": "0.14.3", "identity-obj-proxy": "3.0.0", "jest-canvas-mock": "^2.4.0", @@ -224,8 +223,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.21.0", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.5.tgz", + "integrity": "sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==", "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "commander": "^4.0.1", @@ -271,19 +271,20 @@ } }, "node_modules/@babel/core": { - "version": "7.21.4", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -302,7 +303,6 @@ "version": "7.22.9", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz", "integrity": "sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA==", - "peer": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -320,7 +320,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "peer": true, "engines": { "node": ">=10" } @@ -329,7 +328,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -471,18 +469,18 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "license": "MIT", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { @@ -744,22 +742,6 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "license": "MIT", @@ -774,105 +756,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", "license": "MIT", @@ -890,58 +773,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "engines": { "node": ">=6.9.0" }, @@ -1044,7 +879,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1192,7 +1026,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1222,7 +1055,6 @@ "version": "7.23.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", - "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -1284,7 +1116,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1300,7 +1131,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -1397,7 +1227,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1428,7 +1257,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1475,7 +1303,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1505,7 +1332,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1627,7 +1453,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1643,7 +1468,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1659,7 +1483,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "peer": true, "dependencies": { "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", @@ -1693,7 +1516,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1739,7 +1561,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1755,7 +1576,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.22.15", @@ -2011,7 +1831,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -2042,7 +1861,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -2055,36 +1873,25 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.21.4", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", + "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -2094,46 +1901,63 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.5", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.5", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.3", + "babel-plugin-polyfill-corejs3": "^0.8.1", + "babel-plugin-polyfill-regenerator": "^0.5.0", + "core-js-compat": "^3.30.2", + "semver": "^6.3.0" + }, "engines": { "node": ">=6.9.0" }, @@ -2156,15 +1980,16 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.18.6", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2399,84 +2224,79 @@ "license": "AGPL-3.0" }, "node_modules/@edx/eslint-config": { - "version": "4.0.0-alpha.1", - "license": "MIT", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@edx/eslint-config/-/eslint-config-3.2.0.tgz", + "integrity": "sha512-X2o34xr3KqmQSV/vJVv6k4FxUKYwbBATHTtTHLTYQvM9PVoM3WbKQP9tl6Z057pRErKzshJcks+4ENzDyhr11Q==", "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.58.0", - "@typescript-eslint/parser": "^5.58.0", - "eslint": "^7.32.0 || ^8.2.0", + "eslint": "^6.8.0 || ^7.0.0 || ^8.0.0", "eslint-config-airbnb": "^18.0.1 || ^19.0.0", - "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.20.0", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.18.0", "eslint-plugin-react-hooks": "^1.7.0 || ^4.0.0" } }, "node_modules/@edx/frontend-build": { - "version": "12.9.0-alpha.1", - "license": "AGPL-3.0", + "version": "12.9.17", + "resolved": "https://registry.npmjs.org/@edx/frontend-build/-/frontend-build-12.9.17.tgz", + "integrity": "sha512-P4w/jp456o5EQ5l0WVl4JIRHnC5xbG+M1Ce7xX1JKex4YDN3lmoBuiaguPg3n6CBDsNKEiBr48n4u+ug+5UTCw==", "dependencies": { - "@babel/cli": "7.21.0", - "@babel/core": "7.21.4", + "@babel/cli": "7.22.5", + "@babel/core": "7.22.5", + "@babel/eslint-parser": "7.22.9", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/preset-env": "7.21.4", - "@babel/preset-react": "7.18.6", - "@edx/eslint-config": "4.0.0-alpha.1", - "@edx/new-relic-source-map-webpack-plugin": "1.0.2", - "@edx/typescript-config": "^1.0.0", - "@fullhuman/postcss-purgecss": "^5.0.0", - "@pmmmwh/react-refresh-webpack-plugin": "0.5.10", - "@svgr/webpack": "6.5.1", - "@types/jest": "^26.0.0", - "@typescript-eslint/eslint-plugin": "^5.58.0", - "@typescript-eslint/parser": "^5.58.0", - "autoprefixer": "10.4.14", + "@babel/preset-env": "7.22.5", + "@babel/preset-react": "7.22.5", + "@edx/eslint-config": "3.2.0", + "@edx/new-relic-source-map-webpack-plugin": "2.1.0", + "@fullhuman/postcss-purgecss": "5.0.0", + "@pmmmwh/react-refresh-webpack-plugin": "0.5.11", + "@svgr/webpack": "8.1.0", + "autoprefixer": "10.4.16", "babel-jest": "26.6.3", - "babel-loader": "9.1.2", + "babel-loader": "9.1.3", "babel-plugin-react-intl": "7.9.4", "babel-plugin-transform-imports": "2.0.0", "babel-polyfill": "6.26.0", - "clean-webpack-plugin": "3.0.0", + "chalk": "4.1.2", + "clean-webpack-plugin": "4.0.0", "css-loader": "5.2.7", - "cssnano": "5.1.15", + "cssnano": "6.0.1", "dotenv": "8.6.0", - "dotenv-webpack": "7.1.1", - "eslint": "8.38.0", + "dotenv-webpack": "8.0.1", + "eslint": "8.44.0", "eslint-config-airbnb": "19.0.4", - "eslint-config-airbnb-typescript": "^17.0.0", "eslint-plugin-import": "2.27.5", "eslint-plugin-jsx-a11y": "6.7.1", "eslint-plugin-react": "7.32.2", "eslint-plugin-react-hooks": "4.6.0", + "express": "4.18.2", "file-loader": "6.2.0", - "html-webpack-plugin": "5.5.0", + "html-webpack-plugin": "5.5.3", "identity-obj-proxy": "3.0.0", - "image-minimizer-webpack-plugin": "3.8.2", + "image-minimizer-webpack-plugin": "3.8.3", "jest": "26.6.3", "mini-css-extract-plugin": "1.6.2", - "postcss": "8.4.21", - "postcss-custom-media": "^9.1.2", - "postcss-loader": "6.2.1", - "postcss-rtlcss": "3.7.2", + "postcss": "8.4.30", + "postcss-custom-media": "10.0.1", + "postcss-loader": "7.3.3", + "postcss-rtlcss": "4.0.8", "react-dev-utils": "12.0.1", "react-refresh": "0.14.0", "resolve-url-loader": "5.0.0", - "sass": "1.62.0", - "sass-loader": "12.6.0", - "sharp": "^0.32.0", - "source-map-loader": "^4.0.1", - "style-loader": "3.3.2", - "ts-jest": "^26.5.0", - "typescript": "^4.9.4", + "sass": "1.65.1", + "sass-loader": "13.3.2", + "sharp": "0.32.6", + "source-map-loader": "4.0.1", + "style-loader": "3.3.3", "url-loader": "4.1.1", - "webpack": "5.79.0", - "webpack-bundle-analyzer": "4.8.0", - "webpack-cli": "5.0.1", - "webpack-dev-server": "4.13.2", - "webpack-merge": "5.8.0" + "webpack": "5.88.2", + "webpack-bundle-analyzer": "4.9.1", + "webpack-cli": "5.1.4", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.9.0" }, "bin": { "fedx-scripts": "bin/fedx-scripts.js" @@ -2487,15 +2307,8 @@ }, "node_modules/@edx/frontend-build/node_modules/@types/html-minifier-terser": { "version": "6.1.0", - "license": "MIT" - }, - "node_modules/@edx/frontend-build/node_modules/@types/jest": { - "version": "26.0.24", - "license": "MIT", - "dependencies": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "node_modules/@edx/frontend-build/node_modules/ansi-styles": { "version": "4.3.0", @@ -2532,8 +2345,9 @@ } }, "node_modules/@edx/frontend-build/node_modules/clean-css": { - "version": "5.3.1", - "license": "MIT", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dependencies": { "source-map": "~0.6.0" }, @@ -2541,11 +2355,18 @@ "node": ">= 10.0" } }, - "node_modules/@edx/frontend-build/node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", + "node_modules/@edx/frontend-build/node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dependencies": { + "del": "^4.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" } }, "node_modules/@edx/frontend-build/node_modules/color-convert": { @@ -2564,7 +2385,8 @@ }, "node_modules/@edx/frontend-build/node_modules/commander": { "version": "8.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { "node": ">= 12" } @@ -2624,7 +2446,8 @@ }, "node_modules/@edx/frontend-build/node_modules/css-select": { "version": "4.3.0", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -2636,86 +2459,10 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/@edx/frontend-build/node_modules/cssnano": { - "version": "5.1.15", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/@edx/frontend-build/node_modules/cssnano-preset-default": { - "version": "5.2.14", - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/@edx/frontend-build/node_modules/cssnano-utils": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/@edx/frontend-build/node_modules/diff-sequences": { - "version": "26.6.2", - "license": "MIT", - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/@edx/frontend-build/node_modules/dom-serializer": { "version": "1.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -2727,7 +2474,8 @@ }, "node_modules/@edx/frontend-build/node_modules/domhandler": { "version": "4.3.1", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { "domelementtype": "^2.2.0" }, @@ -2740,7 +2488,8 @@ }, "node_modules/@edx/frontend-build/node_modules/domutils": { "version": "2.8.0", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -2758,8 +2507,9 @@ } }, "node_modules/@edx/frontend-build/node_modules/dotenv-webpack": { - "version": "7.1.1", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.0.1.tgz", + "integrity": "sha512-CdrgfhZOnx4uB18SgaoP9XHRN2v48BbjuXQsZY5ixs5A8579NxQkmMxRtI7aTwSiSQcM2ao12Fdu+L3ZS3bG4w==", "dependencies": { "dotenv-defaults": "^2.0.2" }, @@ -2772,7 +2522,8 @@ }, "node_modules/@edx/frontend-build/node_modules/entities": { "version": "2.2.0", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -2834,7 +2585,8 @@ }, "node_modules/@edx/frontend-build/node_modules/html-minifier-terser": { "version": "6.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -2852,8 +2604,9 @@ } }, "node_modules/@edx/frontend-build/node_modules/html-webpack-plugin": { - "version": "5.5.0", - "license": "MIT", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -2874,6 +2627,8 @@ }, "node_modules/@edx/frontend-build/node_modules/htmlparser2": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -2881,7 +2636,6 @@ "url": "https://github.com/sponsors/fb55" } ], - "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -2897,26 +2651,6 @@ "url": "https://opencollective.com/immer" } }, - "node_modules/@edx/frontend-build/node_modules/jest-diff": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@edx/frontend-build/node_modules/jest-get-type": { - "version": "26.3.0", - "license": "MIT", - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/@edx/frontend-build/node_modules/mini-css-extract-plugin": { "version": "1.6.2", "license": "MIT", @@ -2936,16 +2670,6 @@ "webpack": "^4.4.0 || ^5.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/normalize-url": { - "version": "6.1.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@edx/frontend-build/node_modules/open": { "version": "8.4.0", "license": "MIT", @@ -2962,7 +2686,9 @@ } }, "node_modules/@edx/frontend-build/node_modules/postcss": { - "version": "8.4.21", + "version": "8.4.30", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", + "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", "funding": [ { "type": "opencollective", @@ -2971,11 +2697,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -2983,49 +2712,10 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-calc": { - "version": "8.2.4", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/@edx/frontend-build/node_modules/postcss-colormin": { - "version": "5.3.1", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/@edx/frontend-build/node_modules/postcss-convert-values": { - "version": "5.1.3", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, "node_modules/@edx/frontend-build/node_modules/postcss-custom-media": { - "version": "9.1.4", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.1.tgz", + "integrity": "sha512-fil7cosvzlIAYmZJPtNFcTH0Er7a3GveEK4q5Y/L24eWQHmiw8Fv/E5DMkVpdbNjkGzJxrvowOSt/Il9HZ06VQ==", "funding": [ { "type": "github", @@ -3036,12 +2726,11 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.2", - "@csstools/css-parser-algorithms": "^2.1.1", - "@csstools/css-tokenizer": "^2.1.1", - "@csstools/media-query-list-parser": "^2.1.0" + "@csstools/cascade-layer-name-parser": "^1.0.4", + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3050,547 +2739,552 @@ "postcss": "^8.4" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-discard-comments": { - "version": "5.1.2", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node_modules/@edx/frontend-build/node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-discard-duplicates": { - "version": "5.1.0", + "node_modules/@edx/frontend-build/node_modules/react-dev-utils": { + "version": "12.0.1", "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, - "peerDependencies": { - "postcss": "^8.2.15" + "engines": { + "node": ">=14" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-discard-empty": { - "version": "5.1.1", - "license": "MIT", + "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">=10", + "yarn": ">=1.0.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } } }, - "node_modules/@edx/frontend-build/node_modules/postcss-discard-overridden": { - "version": "5.1.0", + "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", "license": "MIT", "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">= 12.13.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-merge-longhand": { - "version": "5.1.7", + "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/schema-utils": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">= 8.9.0" }, - "peerDependencies": { - "postcss": "^8.2.15" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-merge-rules": { - "version": "5.1.4", - "license": "MIT", + "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/semver": { + "version": "7.3.8", + "license": "ISC", "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" + "lru-cache": "^6.0.0" }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "postcss": "^8.2.15" + "engines": { + "node": ">=10" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-minify-font-values": { - "version": "5.1.0", + "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/tapable": { + "version": "1.1.3", "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=6" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "license": "MIT", + "node_modules/@edx/frontend-build/node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-minify-params": { - "version": "5.1.4", + "node_modules/@edx/frontend-build/node_modules/shell-quote": { + "version": "1.7.4", "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-minify-selectors": { - "version": "5.2.1", + "node_modules/@edx/frontend-build/node_modules/slash": { + "version": "3.0.0", "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=8" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "license": "MIT", + "node_modules/@edx/frontend-build/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=0.10.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-display-values": { - "version": "5.1.0", + "node_modules/@edx/frontend-build/node_modules/supports-color": { + "version": "7.2.0", "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=8" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, + "node_modules/@edx/frontend-build/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=6" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "license": "MIT", + "node_modules/@edx/frontend-build/node_modules/terser": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", "dependencies": { - "postcss-value-parser": "^4.2.0" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "bin": { + "terser": "bin/terser" }, - "peerDependencies": { - "postcss": "^8.2.15" + "engines": { + "node": ">=10" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-string": { - "version": "5.1.0", - "license": "MIT", + "node_modules/@edx/frontend-build/node_modules/terser/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==" + }, + "node_modules/@edx/frontend-build/node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", "dependencies": { - "postcss-value-parser": "^4.2.0" + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=10.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-catalog-search/-/frontend-enterprise-catalog-search-5.0.0.tgz", + "integrity": "sha512-iNLbiVUVI9eRfp1YXmOwuI5FOHGlyVYyQkfiD0Et1/lmkl153QWI0iof80Ms+N4qCSiTgZCy74YjIZ2/rPcjag==", "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "@edx/frontend-enterprise-utils": "^4.0.0", + "classnames": "2.2.5", + "lodash.debounce": "4.0.8", + "prop-types": "15.7.2" }, "peerDependencies": { - "postcss": "^8.2.15" + "@edx/frontend-platform": "^5.0.0", + "@edx/paragon": "^19.15.0 || ^20.0.0", + "react": "^16.12.0 || ^17.0.0", + "react-dom": "^16.12.0 || ^17.0.0", + "react-instantsearch-dom": "^6.8.3", + "react-router-dom": "^6.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/@edx/frontend-enterprise-utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-utils/-/frontend-enterprise-utils-4.0.4.tgz", + "integrity": "sha512-BsjSGfYuN97ZPR45vJ+dNuhEk4EBH65qLTyVrfyv/G+hYOYPvNpx9wSDUnxhdEt60ECVorkgnXj17VHB7spCvQ==", "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "@testing-library/react": "12.1.4", + "history": "4.10.1" }, "peerDependencies": { - "postcss": "^8.2.15" + "@edx/frontend-platform": "^5.0.0", + "react": "^16.12.0 || ^17.0.0", + "react-dom": "^16.12.0 || ^17.0.0", + "react-router-dom": "^6.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-url": { - "version": "5.1.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=12" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/@testing-library/react": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz", + "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==", "dependencies": { - "postcss-value-parser": "^4.2.0" + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0", + "@types/react-dom": "*" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">=12" }, "peerDependencies": { - "postcss": "^8.2.15" + "react": "*", + "react-dom": "*" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-ordered-values": { - "version": "5.1.3", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/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": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">=8" }, - "peerDependencies": { - "postcss": "^8.2.15" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/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": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">=10" }, - "peerDependencies": { - "postcss": "^8.2.15" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/classnames": { + "version": "2.2.5", + "license": "MIT" + }, + "node_modules/@edx/frontend-enterprise-catalog-search/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": { - "postcss-value-parser": "^4.2.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=7.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-svgo": { - "version": "5.1.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/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/@edx/frontend-enterprise-catalog-search/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@edx/frontend-enterprise-catalog-search/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==", + "engines": { + "node": ">=10" }, - "peerDependencies": { - "postcss": "^8.2.15" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-build/node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-catalog-search/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==" + }, + "node_modules/@edx/frontend-enterprise-catalog-search/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": { - "postcss-selector-parser": "^6.0.5" + "has-flag": "^4.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, + "node": ">=8" + } + }, + "node_modules/@edx/frontend-enterprise-hotjar": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-hotjar/-/frontend-enterprise-hotjar-2.0.0.tgz", + "integrity": "sha512-R9MIhysVKPaALKwhengYTZSG32gXka/AnOaSCw/lrV1tWeK4uLl6EP3PSFLXezU5YiFs1NnsDFh7NMlo2FlN7w==", "peerDependencies": { - "postcss": "^8.2.15" + "react": "^16.12.0 || ^17.0.0", + "react-dom": "^16.12.0 || ^17.0.0", + "react-router-dom": "^6.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/pretty-error": { + "node_modules/@edx/frontend-enterprise-logistration": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-logistration/-/frontend-enterprise-logistration-4.0.0.tgz", + "integrity": "sha512-+aclJbyUFrYrzYQvD78N+UMI6Bwy5c6myr73986HFnTLGeWWtCrI+qVH+f42uV0iOEEqN452ouw2WyrdeINChw==", "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "@edx/frontend-enterprise-utils": "^4.0.0", + "prop-types": "15.7.2" + }, + "peerDependencies": { + "@edx/frontend-platform": "^5.0.0", + "react": "^16.12.0 || ^17.0.0", + "react-dom": "^16.12.0 || ^17.0.0", + "react-router-dom": "^6.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/react-dev-utils": { - "version": "12.0.1", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/node_modules/@edx/frontend-enterprise-utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-utils/-/frontend-enterprise-utils-4.0.4.tgz", + "integrity": "sha512-BsjSGfYuN97ZPR45vJ+dNuhEk4EBH65qLTyVrfyv/G+hYOYPvNpx9wSDUnxhdEt60ECVorkgnXj17VHB7spCvQ==", "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "@testing-library/react": "12.1.4", + "history": "4.10.1" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@edx/frontend-platform": "^5.0.0", + "react": "^16.12.0 || ^17.0.0", + "react-dom": "^16.12.0 || ^17.0.0", + "react-router-dom": "^6.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } + "node": ">=12" } }, - "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/node_modules/@testing-library/react": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz", + "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0", + "@types/react-dom": "*" + }, "engines": { - "node": ">= 12.13.0" + "node": ">=12" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" } }, - "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/schema-utils": { - "version": "2.7.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/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": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 8.9.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/semver": { - "version": "7.3.8", - "license": "ISC", + "node_modules/@edx/frontend-enterprise-logistration/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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@edx/frontend-build/node_modules/react-dev-utils/node_modules/tapable": { - "version": "1.1.3", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/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": ">=6" + "node": ">=7.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/renderkid": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/@edx/frontend-build/node_modules/shell-quote": { - "version": "1.7.4", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/@edx/frontend-enterprise-logistration/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/@edx/frontend-build/node_modules/slash": { - "version": "3.0.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, - "node_modules/@edx/frontend-build/node_modules/stylehacks": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/@edx/frontend-build/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@edx/frontend-build/node_modules/tapable": { - "version": "2.2.1", - "license": "MIT", - "engines": { - "node": ">=6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@edx/frontend-build/node_modules/terser": { - "version": "5.15.1", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, + "node_modules/@edx/frontend-enterprise-logistration/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==", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-build/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" + "node_modules/@edx/frontend-enterprise-logistration/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==" }, - "node_modules/@edx/frontend-build/node_modules/webpack-merge": { - "version": "5.8.0", - "license": "MIT", + "node_modules/@edx/frontend-enterprise-logistration/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": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@edx/frontend-enterprise-catalog-search": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-catalog-search/-/frontend-enterprise-catalog-search-5.0.0.tgz", - "integrity": "sha512-iNLbiVUVI9eRfp1YXmOwuI5FOHGlyVYyQkfiD0Et1/lmkl153QWI0iof80Ms+N4qCSiTgZCy74YjIZ2/rPcjag==", - "dependencies": { - "@edx/frontend-enterprise-utils": "^4.0.0", - "classnames": "2.2.5", - "lodash.debounce": "4.0.8", - "prop-types": "15.7.2" - }, - "peerDependencies": { - "@edx/frontend-platform": "^5.0.0", - "@edx/paragon": "^19.15.0 || ^20.0.0", - "react": "^16.12.0 || ^17.0.0", - "react-dom": "^16.12.0 || ^17.0.0", - "react-instantsearch-dom": "^6.8.3", - "react-router-dom": "^6.0.0" + "node": ">=8" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/@edx/frontend-enterprise-utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-utils/-/frontend-enterprise-utils-4.0.4.tgz", - "integrity": "sha512-BsjSGfYuN97ZPR45vJ+dNuhEk4EBH65qLTyVrfyv/G+hYOYPvNpx9wSDUnxhdEt60ECVorkgnXj17VHB7spCvQ==", + "node_modules/@edx/frontend-enterprise-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-utils/-/frontend-enterprise-utils-4.0.0.tgz", + "integrity": "sha512-XnnXYk+Uf8rB9hLy8obhBE2VLYUbXg0RReg1icFJ2N383m1yz8M3E3ThVAhwSVp/U4Z88kjLed85g3HszfEP/g==", "dependencies": { "@testing-library/react": "12.1.4", "history": "4.10.1" @@ -3602,10 +3296,9 @@ "react-router-dom": "^6.0.0" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/@testing-library/dom": { + "node_modules/@edx/frontend-enterprise-utils/node_modules/@testing-library/dom": { "version": "8.20.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", - "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -3620,10 +3313,9 @@ "node": ">=12" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/@testing-library/react": { + "node_modules/@edx/frontend-enterprise-utils/node_modules/@testing-library/react": { "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz", - "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", "@testing-library/dom": "^8.0.0", @@ -3637,10 +3329,9 @@ "react-dom": "*" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/ansi-styles": { + "node_modules/@edx/frontend-enterprise-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==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3651,10 +3342,9 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/chalk": { + "node_modules/@edx/frontend-enterprise-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==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3666,14 +3356,9 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/classnames": { - "version": "2.2.5", - "license": "MIT" - }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/color-convert": { + "node_modules/@edx/frontend-enterprise-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==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3681,23 +3366,20 @@ "node": ">=7.0.0" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/color-name": { + "node_modules/@edx/frontend-enterprise-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==" + "license": "MIT" }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/has-flag": { + "node_modules/@edx/frontend-enterprise-utils/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/pretty-format": { + "node_modules/@edx/frontend-enterprise-utils/node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -3707,10 +3389,9 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/pretty-format/node_modules/ansi-styles": { + "node_modules/@edx/frontend-enterprise-utils/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==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3718,15 +3399,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/react-is": { + "node_modules/@edx/frontend-enterprise-utils/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==" + "license": "MIT" }, - "node_modules/@edx/frontend-enterprise-catalog-search/node_modules/supports-color": { + "node_modules/@edx/frontend-enterprise-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==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3734,192 +3413,299 @@ "node": ">=8" } }, - "node_modules/@edx/frontend-enterprise-hotjar": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-hotjar/-/frontend-enterprise-hotjar-2.0.0.tgz", - "integrity": "sha512-R9MIhysVKPaALKwhengYTZSG32gXka/AnOaSCw/lrV1tWeK4uLl6EP3PSFLXezU5YiFs1NnsDFh7NMlo2FlN7w==", - "peerDependencies": { - "react": "^16.12.0 || ^17.0.0", - "react-dom": "^16.12.0 || ^17.0.0", - "react-router-dom": "^6.0.0" - } - }, - "node_modules/@edx/frontend-enterprise-logistration": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-logistration/-/frontend-enterprise-logistration-4.0.0.tgz", - "integrity": "sha512-+aclJbyUFrYrzYQvD78N+UMI6Bwy5c6myr73986HFnTLGeWWtCrI+qVH+f42uV0iOEEqN452ouw2WyrdeINChw==", + "node_modules/@edx/frontend-platform": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-5.6.1.tgz", + "integrity": "sha512-7MOIjGGYplVY7yHrSea90EkQ24UxKxRKU9FaihB41yUSL/Vin1txDuIn3059Xr+60QfIKRsym+LogXe9IZ47Dw==", "dependencies": { - "@edx/frontend-enterprise-utils": "^4.0.0", - "prop-types": "15.7.2" + "@cospired/i18n-iso-languages": "4.1.0", + "@formatjs/intl-pluralrules": "4.3.3", + "@formatjs/intl-relativetimeformat": "10.0.1", + "axios": "0.27.2", + "axios-cache-interceptor": "0.10.7", + "form-urlencoded": "4.1.4", + "glob": "7.2.3", + "history": "4.10.1", + "i18n-iso-countries": "4.3.1", + "jwt-decode": "3.1.2", + "localforage": "1.10.0", + "localforage-memoryStorageDriver": "0.9.2", + "lodash.camelcase": "4.3.0", + "lodash.memoize": "4.1.2", + "lodash.merge": "4.6.2", + "lodash.snakecase": "4.1.1", + "pubsub-js": "1.9.4", + "react-intl": "^5.25.0", + "universal-cookie": "4.0.4" + }, + "bin": { + "intl-imports.js": "i18n/scripts/intl-imports.js", + "transifex-utils.js": "i18n/scripts/transifex-utils.js" }, "peerDependencies": { - "@edx/frontend-platform": "^5.0.0", - "react": "^16.12.0 || ^17.0.0", - "react-dom": "^16.12.0 || ^17.0.0", - "react-router-dom": "^6.0.0" + "@edx/frontend-build": ">= 8.1.0 || ^12.9.0-alpha.1", + "@edx/paragon": ">= 10.0.0 < 22.0.0", + "prop-types": "^15.7.2", + "react": "^16.9.0 || ^17.0.0", + "react-dom": "^16.9.0 || ^17.0.0", + "react-redux": "^7.1.1", + "react-router-dom": "^6.0.0", + "redux": "^4.0.4" } }, - "node_modules/@edx/frontend-enterprise-logistration/node_modules/@edx/frontend-enterprise-utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-utils/-/frontend-enterprise-utils-4.0.4.tgz", - "integrity": "sha512-BsjSGfYuN97ZPR45vJ+dNuhEk4EBH65qLTyVrfyv/G+hYOYPvNpx9wSDUnxhdEt60ECVorkgnXj17VHB7spCvQ==", + "node_modules/@edx/new-relic-source-map-webpack-plugin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@edx/new-relic-source-map-webpack-plugin/-/new-relic-source-map-webpack-plugin-2.1.0.tgz", + "integrity": "sha512-OrlvtdsPcWuOm6NBWfUxFE06qdPiu2bf9nU4I9t8Lu7WW6NsosAB5hxm5U+MBMZP2AuVl3FAt0k0lZsu3+ri8Q==", "dependencies": { - "@testing-library/react": "12.1.4", - "history": "4.10.1" - }, - "peerDependencies": { - "@edx/frontend-platform": "^5.0.0", - "react": "^16.12.0 || ^17.0.0", - "react-dom": "^16.12.0 || ^17.0.0", - "react-router-dom": "^6.0.0" + "@newrelic/publish-sourcemap": "^5.0.1" } }, - "node_modules/@edx/frontend-enterprise-logistration/node_modules/@testing-library/dom": { - "version": "8.20.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", - "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" + "node_modules/@edx/paragon": { + "version": "20.46.3", + "license": "Apache-2.0", + "workspaces": [ + "example", + "component-generator", + "www", + "icons", + "dependent-usage-analyzer" + ], + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.1.1", + "@fortawesome/react-fontawesome": "^0.1.18", + "@popperjs/core": "^2.11.4", + "bootstrap": "^4.6.2", + "classnames": "^2.3.1", + "email-prop-type": "^3.0.0", + "file-selector": "^0.6.0", + "font-awesome": "^4.7.0", + "glob": "^8.0.3", + "lodash.uniqby": "^4.7.0", + "mailto-link": "^2.0.0", + "prop-types": "^15.8.1", + "react-bootstrap": "^1.6.5", + "react-colorful": "^5.6.1", + "react-dropzone": "^14.2.1", + "react-focus-on": "^3.5.4", + "react-loading-skeleton": "^3.1.0", + "react-popper": "^2.2.5", + "react-proptype-conditional-require": "^1.0.4", + "react-responsive": "^8.2.0", + "react-table": "^7.7.0", + "react-transition-group": "^4.4.2", + "tabbable": "^5.3.3", + "uncontrollable": "^7.2.1", + "uuid": "^9.0.0" }, + "peerDependencies": { + "react": "^16.8.6 || ^17.0.0", + "react-dom": "^16.8.6 || ^17.0.0", + "react-intl": "^5.25.1" + } + }, + "node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.2.1", + "hasInstallScript": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/@edx/frontend-enterprise-logistration/node_modules/@testing-library/react": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz", - "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==", + "node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.2.1", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "*" + "@fortawesome/fontawesome-common-types": "6.2.1" }, "engines": { - "node": ">=12" + "node": ">=6" + } + }, + "node_modules/@edx/paragon/node_modules/@fortawesome/react-fontawesome": { + "version": "0.1.19", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" }, "peerDependencies": { - "react": "*", - "react-dom": "*" + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.x" } }, - "node_modules/@edx/frontend-enterprise-logistration/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==", + "node_modules/@edx/paragon/node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "balanced-match": "^1.0.0" } }, - "node_modules/@edx/frontend-enterprise-logistration/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@edx/paragon/node_modules/classnames": { + "version": "2.3.2", + "license": "MIT" + }, + "node_modules/@edx/paragon/node_modules/glob": { + "version": "8.0.3", + "license": "ISC", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@edx/frontend-enterprise-logistration/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==", + "node_modules/@edx/paragon/node_modules/minimatch": { + "version": "5.1.0", + "license": "ISC", "dependencies": { - "color-name": "~1.1.4" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/@edx/frontend-enterprise-logistration/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/@edx/frontend-enterprise-logistration/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" + "node_modules/@edx/paragon/node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/@edx/frontend-enterprise-logistration/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "node_modules/@edx/react-unit-test-utils": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@edx/react-unit-test-utils/-/react-unit-test-utils-1.7.1.tgz", + "integrity": "sha512-EEMoy0SIZOpJAsrr8BNxW+ZL13UzqCw0z5MFNO1AGgElsUbiXiVY/ReRkstLJjf4CFiXro6mFhtKMFmz1Wg2cQ==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "@edx/browserslist-config": "^1.1.1", + "@edx/frontend-platform": "4.6.0", + "@edx/paragon": "^20.44.0", + "@reduxjs/toolkit": "^1.5.1", + "@testing-library/dom": "^9.3.0", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^12.1.5", + "@testing-library/react-hooks": "^8.0.1", + "classnames": "^2.2.6", + "core-js": "3.6.5", + "lodash": "^4.17.21", + "react-dev-utils": "^12.0.1", + "react-test-renderer": "17.0.2" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "peerDependencies": { + "@edx/frontend-build": ">=8.1.0", + "react": "^16.9.0 || ^17.0.0" } }, - "node_modules/@edx/frontend-enterprise-logistration/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==", - "engines": { - "node": ">=10" + "node_modules/@edx/react-unit-test-utils/node_modules/@edx/browserslist-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@edx/browserslist-config/-/browserslist-config-1.2.0.tgz", + "integrity": "sha512-T1+6P52Yx7SMkmoIr4O0Q3m/DyRdrLTJbv1xVijdRLFEq1hqdafEs+Ln1423U5LSkTePb9AOkEtL1G0RZLFl1w==", + "dev": true + }, + "node_modules/@edx/react-unit-test-utils/node_modules/@edx/frontend-platform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-4.6.0.tgz", + "integrity": "sha512-NZ1I3BgUZl7bqvDwSnnL+LxqZOdOUGZU55KiwvknqiKU8RS5Lx9tc4arp+NcX1u58xy/Xbinv+mriSO6PPxQNQ==", + "dev": true, + "dependencies": { + "@cospired/i18n-iso-languages": "4.1.0", + "@formatjs/intl-pluralrules": "4.3.3", + "@formatjs/intl-relativetimeformat": "10.0.1", + "axios": "0.27.2", + "axios-cache-interceptor": "0.10.7", + "form-urlencoded": "4.1.4", + "glob": "7.2.3", + "history": "4.10.1", + "i18n-iso-countries": "4.3.1", + "jwt-decode": "3.1.2", + "localforage": "1.10.0", + "localforage-memoryStorageDriver": "0.9.2", + "lodash.camelcase": "4.3.0", + "lodash.memoize": "4.1.2", + "lodash.merge": "4.6.2", + "lodash.snakecase": "4.1.1", + "pubsub-js": "1.9.4", + "react-intl": "^5.25.0", + "universal-cookie": "4.0.4" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "intl-imports.js": "i18n/scripts/intl-imports.js", + "transifex-utils.js": "i18n/scripts/transifex-utils.js" + }, + "peerDependencies": { + "@edx/frontend-build": ">= 8.1.0", + "@edx/paragon": ">= 10.0.0 < 21.0.0", + "prop-types": "^15.7.2", + "react": "^16.9.0 || ^17.0.0", + "react-dom": "^16.9.0 || ^17.0.0", + "react-redux": "^7.1.1", + "react-router-dom": "^5.0.1", + "redux": "^4.0.4" } }, - "node_modules/@edx/frontend-enterprise-logistration/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==" - }, - "node_modules/@edx/frontend-enterprise-logistration/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==", + "node_modules/@edx/react-unit-test-utils/node_modules/@testing-library/react": { + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", + "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", + "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0", + "@types/react-dom": "<18.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "peerDependencies": { + "react": "<18.0.0", + "react-dom": "<18.0.0" } }, - "node_modules/@edx/frontend-enterprise-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-enterprise-utils/-/frontend-enterprise-utils-4.0.0.tgz", - "integrity": "sha512-XnnXYk+Uf8rB9hLy8obhBE2VLYUbXg0RReg1icFJ2N383m1yz8M3E3ThVAhwSVp/U4Z88kjLed85g3HszfEP/g==", + "node_modules/@edx/react-unit-test-utils/node_modules/@testing-library/react-hooks": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz", + "integrity": "sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==", + "dev": true, "dependencies": { - "@testing-library/react": "12.1.4", - "history": "4.10.1" + "@babel/runtime": "^7.12.5", + "react-error-boundary": "^3.1.0" + }, + "engines": { + "node": ">=12" }, "peerDependencies": { - "@edx/frontend-platform": "^5.0.0", - "react": "^16.12.0 || ^17.0.0", - "react-dom": "^16.12.0 || ^17.0.0", - "react-router-dom": "^6.0.0" + "@types/react": "^16.9.0 || ^17.0.0", + "react": "^16.9.0 || ^17.0.0", + "react-dom": "^16.9.0 || ^17.0.0", + "react-test-renderer": "^16.9.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-test-renderer": { + "optional": true + } } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/@testing-library/dom": { + "node_modules/@edx/react-unit-test-utils/node_modules/@testing-library/react/node_modules/@testing-library/dom": { "version": "8.20.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -3934,25 +3720,20 @@ "node": ">=12" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/@testing-library/react": { - "version": "12.1.4", - "license": "MIT", + "node_modules/@edx/react-unit-test-utils/node_modules/@types/react-dom": { + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", + "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "*" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" + "@types/react": "^17" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/ansi-styles": { + "node_modules/@edx/react-unit-test-utils/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "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" }, @@ -3963,9 +3744,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/chalk": { + "node_modules/@edx/react-unit-test-utils/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@edx/react-unit-test-utils/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "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" @@ -3977,9 +3769,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/color-convert": { + "node_modules/@edx/react-unit-test-utils/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "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" }, @@ -3987,225 +3781,348 @@ "node": ">=7.0.0" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/color-name": { + "node_modules/@edx/react-unit-test-utils/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/@edx/react-unit-test-utils/node_modules/core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/pretty-format": { - "version": "27.5.1", - "license": "MIT", + "node_modules/@edx/react-unit-test-utils/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "license": "MIT", + "node_modules/@edx/react-unit-test-utils/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/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/react-is": { - "version": "17.0.2", - "license": "MIT" - }, - "node_modules/@edx/frontend-enterprise-utils/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/@edx/react-unit-test-utils/node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.4.0" } }, - "node_modules/@edx/frontend-platform": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-5.6.1.tgz", - "integrity": "sha512-7MOIjGGYplVY7yHrSea90EkQ24UxKxRKU9FaihB41yUSL/Vin1txDuIn3059Xr+60QfIKRsym+LogXe9IZ47Dw==", + "node_modules/@edx/react-unit-test-utils/node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dev": true, "dependencies": { - "@cospired/i18n-iso-languages": "4.1.0", - "@formatjs/intl-pluralrules": "4.3.3", - "@formatjs/intl-relativetimeformat": "10.0.1", - "axios": "0.27.2", - "axios-cache-interceptor": "0.10.7", - "form-urlencoded": "4.1.4", - "glob": "7.2.3", - "history": "4.10.1", - "i18n-iso-countries": "4.3.1", - "jwt-decode": "3.1.2", - "localforage": "1.10.0", - "localforage-memoryStorageDriver": "0.9.2", - "lodash.camelcase": "4.3.0", - "lodash.memoize": "4.1.2", - "lodash.merge": "4.6.2", - "lodash.snakecase": "4.1.1", - "pubsub-js": "1.9.4", - "react-intl": "^5.25.0", - "universal-cookie": "4.0.4" + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" }, - "bin": { - "intl-imports.js": "i18n/scripts/intl-imports.js", - "transifex-utils.js": "i18n/scripts/transifex-utils.js" + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" }, "peerDependencies": { - "@edx/frontend-build": ">= 8.1.0 || ^12.9.0-alpha.1", - "@edx/paragon": ">= 10.0.0 < 22.0.0", - "prop-types": "^15.7.2", - "react": "^16.9.0 || ^17.0.0", - "react-dom": "^16.9.0 || ^17.0.0", - "react-redux": "^7.1.1", - "react-router-dom": "^6.0.0", - "redux": "^4.0.4" + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } } }, - "node_modules/@edx/new-relic-source-map-webpack-plugin": { - "version": "1.0.2", - "license": "AGPL-3.0", + "node_modules/@edx/react-unit-test-utils/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "dependencies": { - "@newrelic/publish-sourcemap": "^5.0.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@edx/paragon": { - "version": "20.46.3", - "license": "Apache-2.0", - "workspaces": [ - "example", - "component-generator", - "www", - "icons", - "dependent-usage-analyzer" - ], + "node_modules/@edx/react-unit-test-utils/node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.1.18", - "@popperjs/core": "^2.11.4", - "bootstrap": "^4.6.2", - "classnames": "^2.3.1", - "email-prop-type": "^3.0.0", - "file-selector": "^0.6.0", - "font-awesome": "^4.7.0", - "glob": "^8.0.3", - "lodash.uniqby": "^4.7.0", - "mailto-link": "^2.0.0", - "prop-types": "^15.8.1", - "react-bootstrap": "^1.6.5", - "react-colorful": "^5.6.1", - "react-dropzone": "^14.2.1", - "react-focus-on": "^3.5.4", - "react-loading-skeleton": "^3.1.0", - "react-popper": "^2.2.5", - "react-proptype-conditional-require": "^1.0.4", - "react-responsive": "^8.2.0", - "react-table": "^7.7.0", - "react-transition-group": "^4.4.2", - "tabbable": "^5.3.3", - "uncontrollable": "^7.2.1", - "uuid": "^9.0.0" + "duplexer": "^0.1.2" }, - "peerDependencies": { - "react": "^16.8.6 || ^17.0.0", - "react-dom": "^16.8.6 || ^17.0.0", - "react-intl": "^5.25.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.2.1", - "hasInstallScript": true, - "license": "MIT", + "node_modules/@edx/react-unit-test-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.2.1", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.2.1" - }, - "engines": { - "node": ">=6" + "node_modules/@edx/react-unit-test-utils/node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "node_modules/@edx/paragon/node_modules/@fortawesome/react-fontawesome": { - "version": "0.1.19", - "license": "MIT", + "node_modules/@edx/react-unit-test-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@edx/react-unit-test-utils/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, "dependencies": { - "prop-types": "^15.8.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || ~6", - "react": ">=16.x" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@edx/paragon/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", + "node_modules/@edx/react-unit-test-utils/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@edx/paragon/node_modules/classnames": { - "version": "2.3.2", - "license": "MIT" + "node_modules/@edx/react-unit-test-utils/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/@edx/paragon/node_modules/glob": { - "version": "8.0.3", - "license": "ISC", + "node_modules/@edx/react-unit-test-utils/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/@edx/react-unit-test-utils/node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "engines": { - "node": ">=12" + "node": ">=14" + } + }, + "node_modules/@edx/react-unit-test-utils/node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/@edx/react-unit-test-utils/node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/@edx/react-unit-test-utils/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/@edx/paragon/node_modules/minimatch": { - "version": "5.1.0", - "license": "ISC", + "node_modules/@edx/react-unit-test-utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/@edx/paragon/node_modules/prop-types": { - "version": "15.8.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "node_modules/@edx/react-unit-test-utils/node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@edx/typescript-config": { - "version": "1.0.1", - "license": "MIT", - "peerDependencies": { - "typescript": "^4.9.4" + "node_modules/@edx/react-unit-test-utils/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@edx/react-unit-test-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/@emnapi/runtime": { @@ -4298,8 +4215,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.38.0", - "license": "MIT", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -6333,7 +6251,6 @@ "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "peer": true, "dependencies": { "eslint-scope": "5.1.1" } @@ -6368,8 +6285,9 @@ } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.10", - "license": "MIT", + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", "dependencies": { "ansi-html-community": "^0.0.8", "common-path-prefix": "^3.0.0", @@ -6388,7 +6306,7 @@ "@types/webpack": "4.x || 5.x", "react-refresh": ">=0.10.0 <1.0.0", "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <4.0.0", + "type-fest": ">=0.17.0 <5.0.0", "webpack": ">=4.43.0 <6.0.0", "webpack-dev-server": "3.x || 4.x", "webpack-hot-middleware": "2.x", @@ -6417,7 +6335,8 @@ }, "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { "version": "0.7.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } @@ -6435,6 +6354,58 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "dev": true, + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@reduxjs/toolkit/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/@reduxjs/toolkit/node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "dev": true, + "peerDependencies": { + "redux": "^4" + } + }, "node_modules/@remix-run/router": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz", @@ -6481,10 +6452,11 @@ } }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "license": "MIT", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6496,7 +6468,8 @@ }, "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { "version": "8.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "engines": { "node": ">=14" }, @@ -6510,7 +6483,8 @@ }, "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { "version": "8.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "engines": { "node": ">=14" }, @@ -6523,10 +6497,11 @@ } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "license": "MIT", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6537,10 +6512,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "license": "MIT", - "engines": { - "node": ">=10" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" }, "funding": { "type": "github", @@ -6551,10 +6527,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "license": "MIT", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6565,10 +6542,11 @@ } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "license": "MIT", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6579,8 +6557,9 @@ } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "license": "MIT", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "engines": { "node": ">=12" }, @@ -6593,20 +6572,21 @@ } }, "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "license": "MIT", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6617,17 +6597,18 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "license": "MIT", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6635,14 +6616,15 @@ } }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "license": "MIT", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6650,35 +6632,37 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "license": "MIT", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "license": "MIT", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -6689,20 +6673,21 @@ } }, "node_modules/@svgr/webpack": { - "version": "6.5.1", - "license": "MIT", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -7424,8 +7409,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.0.25", - "license": "MIT", + "version": "17.0.75", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.75.tgz", + "integrity": "sha512-MSA+NzEzXnQKrqpO63CYqNstFjsESgvJAdAyyJ1n6ZQq/GLgf6nOfIKwk+Twuz0L1N6xPe+qz5xRCJrbhMaLsw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -7479,10 +7465,6 @@ "schema-utils": "*" } }, - "node_modules/@types/semver": { - "version": "7.5.0", - "license": "MIT" - }, "node_modules/@types/serve-index": { "version": "1.9.1", "license": "MIT", @@ -7507,7 +7489,8 @@ }, "node_modules/@types/source-list-map": { "version": "0.1.2", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/stack-utils": { "version": "2.0.1", @@ -7515,7 +7498,8 @@ }, "node_modules/@types/tapable": { "version": "1.0.8", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.6", @@ -7528,6 +7512,7 @@ "node_modules/@types/uglify-js": { "version": "3.17.1", "license": "MIT", + "peer": true, "dependencies": { "source-map": "^0.6.1" } @@ -7535,6 +7520,7 @@ "node_modules/@types/uglify-js/node_modules/source-map": { "version": "0.6.1", "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7550,6 +7536,7 @@ "node_modules/@types/webpack": { "version": "4.41.33", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "@types/tapable": "^1", @@ -7562,6 +7549,7 @@ "node_modules/@types/webpack-sources": { "version": "3.2.0", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "@types/source-list-map": "*", @@ -7571,6 +7559,7 @@ "node_modules/@types/webpack-sources/node_modules/source-map": { "version": "0.7.4", "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">= 8" } @@ -7578,6 +7567,7 @@ "node_modules/@types/webpack/node_modules/source-map": { "version": "0.6.1", "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7601,362 +7591,134 @@ "version": "21.0.0", "license": "MIT" }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.9", - "license": "MIT", + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.9", - "@typescript-eslint/type-utils": "5.59.9", - "@typescript-eslint/utils": "5.59.9", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.1", - "license": "ISC", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.59.9", - "license": "BSD-2-Clause", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dependencies": { - "@typescript-eslint/scope-manager": "5.59.9", - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/typescript-estree": "5.59.9", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.9", - "license": "MIT", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dependencies": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.9", - "license": "MIT", + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.9", - "@typescript-eslint/utils": "5.59.9", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@xtuc/long": "4.2.2" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.9", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.9", - "license": "BSD-2-Clause", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dependencies": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.1", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.59.9", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.9", - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/typescript-estree": "5.59.9", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.1", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "license": "MIT", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "license": "MIT", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "license": "MIT", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -7998,56 +7760,15 @@ } } }, - "node_modules/@wojtekmaj/enzyme-adapter-react-17": { - "version": "0.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@wojtekmaj/enzyme-adapter-utils": "^0.2.0", - "enzyme-shallow-equal": "^1.0.0", - "has": "^1.0.0", - "prop-types": "^15.7.0", - "react-is": "^17.0.0", - "react-test-renderer": "^17.0.0" - }, - "funding": { - "url": "https://github.com/wojtekmaj/enzyme-adapter-react-17?sponsor=1" - }, - "peerDependencies": { - "enzyme": "^3.0.0", - "react": "^17.0.0-0", - "react-dom": "^17.0.0-0" - } - }, - "node_modules/@wojtekmaj/enzyme-adapter-react-17/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@wojtekmaj/enzyme-adapter-utils": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "function.prototype.name": "^1.1.0", - "has": "^1.0.0", - "object.fromentries": "^2.0.0", - "prop-types": "^15.7.0" - }, - "funding": { - "url": "https://github.com/wojtekmaj/enzyme-adapter-utils?sponsor=1" - }, - "peerDependencies": { - "react": "^17.0.0-0" - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", @@ -8402,24 +8123,6 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.1", "license": "MIT", @@ -8546,7 +8249,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.14", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "funding": [ { "type": "opencollective", @@ -8555,13 +8260,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -8643,6 +8351,11 @@ "deep-equal": "^2.0.5" } }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + }, "node_modules/babel-jest": { "version": "26.6.3", "license": "MIT", @@ -8729,10 +8442,11 @@ } }, "node_modules/babel-loader": { - "version": "9.1.2", - "license": "MIT", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dependencies": { - "find-cache-dir": "^3.3.2", + "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" }, "engines": { @@ -8745,7 +8459,8 @@ }, "node_modules/babel-loader/node_modules/ajv": { "version": "8.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -8759,7 +8474,8 @@ }, "node_modules/babel-loader/node_modules/ajv-keywords": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -8769,11 +8485,13 @@ }, "node_modules/babel-loader/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/babel-loader/node_modules/schema-utils": { - "version": "4.0.1", - "license": "MIT", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -10086,40 +9804,66 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "license": "MIT", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "license": "MIT", + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "license": "MIT", + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-react-intl": { - "version": "7.9.4", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-react-intl": { + "version": "7.9.4", "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.9.0", @@ -10275,6 +10019,8 @@ }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -10288,8 +10034,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/batch": { "version": "0.6.1", @@ -10311,7 +10056,8 @@ }, "node_modules/bl": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -10320,7 +10066,8 @@ }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10457,6 +10204,7 @@ }, "node_modules/bs-logger": { "version": "0.2.6", + "devOptional": true, "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" @@ -10474,6 +10222,8 @@ }, "node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -10488,7 +10238,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -10661,42 +10410,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "dev": true, - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/chokidar": { "version": "3.5.3", "funding": [ @@ -10724,7 +10437,8 @@ }, "node_modules/chownr": { "version": "1.1.4", - "license": "ISC" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "node_modules/chrome-trace-event": { "version": "1.0.3", @@ -10863,6 +10577,7 @@ "node_modules/clean-webpack-plugin": { "version": "3.0.0", "license": "MIT", + "peer": true, "dependencies": { "@types/webpack": "^4.4.31", "del": "^4.1.1" @@ -10987,10 +10702,6 @@ "version": "3.0.0", "license": "ISC" }, - "node_modules/commondir": { - "version": "1.0.1", - "license": "MIT" - }, "node_modules/component-emitter": { "version": "1.3.0", "license": "MIT" @@ -11142,17 +10853,44 @@ "license": "MIT" }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "license": "MIT", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/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==" + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/create-jest": { @@ -11999,16 +11737,6 @@ "node": ">= 8" } }, - "node_modules/css-declaration-sorter": { - "version": "6.4.0", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, "node_modules/css-loader": { "version": "5.2.6", "dev": true, @@ -12069,21 +11797,15 @@ } }, "node_modules/css-tree": { - "version": "1.1.3", - "license": "MIT", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -12120,7 +11842,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", - "peer": true, "dependencies": { "cssnano-preset-default": "^6.0.1", "lilconfig": "^2.1.0" @@ -12136,20 +11857,10 @@ "postcss": "^8.2.15" } }, - "node_modules/cssnano/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "peer": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/cssnano/node_modules/css-declaration-sorter": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18" }, @@ -12157,24 +11868,10 @@ "postcss": "^8.0.9" } }, - "node_modules/cssnano/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "peer": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/cssnano/node_modules/cssnano-preset-default": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz", "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==", - "peer": true, "dependencies": { "css-declaration-sorter": "^7.1.1", "cssnano-utils": "^4.0.1", @@ -12217,7 +11914,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -12229,7 +11925,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz", "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "caniuse-api": "^3.0.0", @@ -12247,7 +11942,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz", "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "postcss-value-parser": "^4.2.0" @@ -12263,7 +11957,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -12275,7 +11968,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -12287,7 +11979,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -12299,7 +11990,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -12311,7 +12001,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz", "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.0.2" @@ -12327,7 +12016,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "postcss-selector-parser": "^6.0.15" @@ -12343,7 +12031,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz", "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "caniuse-api": "^3.0.0", @@ -12361,7 +12048,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12376,7 +12062,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", - "peer": true, "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^4.0.1", @@ -12393,7 +12078,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz", "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "cssnano-utils": "^4.0.1", @@ -12410,7 +12094,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz", "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==", - "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.15" }, @@ -12425,7 +12108,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", - "peer": true, "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -12437,7 +12119,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12452,7 +12133,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12467,7 +12147,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12482,7 +12161,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12497,7 +12175,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12512,7 +12189,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz", "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "postcss-value-parser": "^4.2.0" @@ -12528,7 +12204,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12543,7 +12218,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12558,7 +12232,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", - "peer": true, "dependencies": { "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" @@ -12574,7 +12247,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz", "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==", - "peer": true, "dependencies": { "browserslist": "^4.22.2", "caniuse-api": "^3.0.0" @@ -12590,7 +12262,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12605,7 +12276,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz", "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==", - "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -12621,7 +12291,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz", "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==", - "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.15" }, @@ -12632,11 +12301,10 @@ "postcss": "^8.4.31" } }, - "node_modules/cssnano/node_modules/csso": { + "node_modules/csso": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "peer": true, "dependencies": { "css-tree": "~2.2.0" }, @@ -12645,11 +12313,10 @@ "npm": ">=7.0.0" } }, - "node_modules/cssnano/node_modules/csso/node_modules/css-tree": { + "node_modules/csso/node_modules/css-tree": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "peer": true, "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -12659,52 +12326,10 @@ "npm": ">=7.0.0" } }, - "node_modules/cssnano/node_modules/csso/node_modules/mdn-data": { + "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "peer": true - }, - "node_modules/cssnano/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "peer": true - }, - "node_modules/cssnano/node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", - "peer": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" }, "node_modules/cssom": { "version": "0.4.4", @@ -12834,7 +12459,8 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { "mimic-response": "^3.1.0" }, @@ -12897,7 +12523,8 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "engines": { "node": ">=4.0.0" } @@ -13150,11 +12777,6 @@ "node": ">=8" } }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/dns-equal": { "version": "1.0.0", "license": "MIT" @@ -13396,50 +13018,6 @@ "node": ">=4" } }, - "node_modules/enzyme": { - "version": "3.11.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/enzyme-shallow-equal": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3", - "object-is": "^1.1.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/error-ex": { "version": "1.3.2", "license": "MIT", @@ -13508,7 +13086,8 @@ }, "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/es-get-iterator": { "version": "1.1.3", @@ -13663,14 +13242,15 @@ } }, "node_modules/eslint": { - "version": "8.38.0", - "license": "MIT", + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -13679,9 +13259,9 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -13689,20 +13269,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -13753,19 +13332,6 @@ "eslint-plugin-import": "^2.25.2" } }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "17.0.0", - "license": "MIT", - "dependencies": { - "eslint-config-airbnb-base": "^15.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.3" - } - }, "node_modules/eslint-import-resolver-node": { "version": "0.3.7", "license": "MIT", @@ -14031,15 +13597,19 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "license": "BSD-2-Clause", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", @@ -14380,7 +13950,8 @@ }, "node_modules/expand-template": { "version": "2.0.3", - "license": "(MIT OR WTFPL)", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "engines": { "node": ">=6" } @@ -14662,6 +14233,11 @@ "version": "1.1.7", "license": "MIT" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, "node_modules/fast-glob": { "version": "3.2.12", "license": "MIT", @@ -14818,28 +14394,105 @@ "license": "MIT" }, "node_modules/find-cache-dir": { - "version": "3.3.2", - "license": "MIT", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "license": "MIT", + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dependencies": { - "semver": "^6.0.0" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15170,7 +14823,8 @@ }, "node_modules/fs-constants": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { "version": "9.1.0", @@ -15315,7 +14969,8 @@ }, "node_modules/github-from-package": { "version": "0.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { "version": "7.2.3", @@ -15436,15 +15091,10 @@ "version": "4.2.10", "license": "ISC" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "license": "MIT" - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "peer": true + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/growly": { "version": "1.3.0", @@ -15661,18 +15311,6 @@ "htmlparser2": "8.0.1" } }, - "node_modules/html-element-map": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "license": "MIT", @@ -15955,6 +15593,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -15968,8 +15608,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/ignore": { "version": "5.2.0", @@ -15979,10 +15618,11 @@ } }, "node_modules/image-minimizer-webpack-plugin": { - "version": "3.8.2", - "license": "MIT", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/image-minimizer-webpack-plugin/-/image-minimizer-webpack-plugin-3.8.3.tgz", + "integrity": "sha512-Ex0cjNJc2FUSuwN7WHNyxkIZINP0M9lrN+uWJznMcsehiM5Z7ELwk+SEkSGEookK1GUd2wf+09jy1PEH5a5XmQ==", "dependencies": { - "schema-utils": "^4.0.0", + "schema-utils": "^4.2.0", "serialize-javascript": "^6.0.1" }, "engines": { @@ -16012,7 +15652,8 @@ }, "node_modules/image-minimizer-webpack-plugin/node_modules/ajv": { "version": "8.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16026,7 +15667,8 @@ }, "node_modules/image-minimizer-webpack-plugin/node_modules/ajv-keywords": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -16036,11 +15678,13 @@ }, "node_modules/image-minimizer-webpack-plugin/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/image-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.1", - "license": "MIT", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -16636,11 +16280,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-subset": { - "version": "0.1.1", - "dev": true, - "license": "MIT" - }, "node_modules/is-symbol": { "version": "1.0.4", "license": "MIT", @@ -19523,7 +19162,6 @@ "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -19534,14 +19172,6 @@ "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "peer": true }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "license": "MIT" @@ -19719,13 +19349,6 @@ "node": ">=6" } }, - "node_modules/klona": { - "version": "2.0.6", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/language-subtag-registry": { "version": "0.3.22", "license": "CC0-1.0" @@ -19847,18 +19470,17 @@ }, "node_modules/lodash.escape": { "version": "4.0.1", - "dev": true, "license": "MIT" }, - "node_modules/lodash.flattendeep": { + "node_modules/lodash.flatten": { "version": "4.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "dev": true, - "license": "MIT" + "node_modules/lodash.invokemap": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz", + "integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", @@ -19872,6 +19494,11 @@ "version": "4.6.2", "license": "MIT" }, + "node_modules/lodash.pullall": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.pullall/-/lodash.pullall-4.2.0.tgz", + "integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==" + }, "node_modules/lodash.snakecase": { "version": "4.1.1", "license": "MIT" @@ -19951,6 +19578,7 @@ }, "node_modules/make-error": { "version": "1.3.6", + "devOptional": true, "license": "ISC" }, "node_modules/makeerror": { @@ -20037,8 +19665,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.14", - "license": "CC0-1.0" + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/mdurl": { "version": "1.0.1", @@ -20153,7 +19782,8 @@ }, "node_modules/mimic-response": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { "node": ">=10" }, @@ -20265,12 +19895,8 @@ }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "license": "MIT" - }, - "node_modules/moo": { - "version": "0.5.2", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/moo-color": { "version": "1.0.3", @@ -20286,8 +19912,9 @@ "license": "MIT" }, "node_modules/mrmime": { - "version": "1.0.1", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "engines": { "node": ">=10" } @@ -20346,42 +19973,13 @@ }, "node_modules/napi-build-utils": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "node_modules/natural-compare": { "version": "1.4.0", "license": "MIT" }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "license": "MIT" - }, - "node_modules/nearley": { - "version": "2.20.1", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" - }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" - } - }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, "node_modules/negotiator": { "version": "0.6.3", "license": "MIT", @@ -20406,8 +20004,9 @@ } }, "node_modules/node-abi": { - "version": "3.43.0", - "license": "MIT", + "version": "3.54.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", + "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", "dependencies": { "semver": "^7.3.5" }, @@ -20416,8 +20015,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.5.1", - "license": "ISC", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -20430,7 +20030,8 @@ }, "node_modules/node-addon-api": { "version": "6.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" }, "node_modules/node-forge": { "version": "1.3.1", @@ -21024,29 +20625,6 @@ "version": "1.0.2", "license": "MIT" }, - "node_modules/parse5": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "license": "MIT", @@ -21252,11 +20830,6 @@ "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, "node_modules/picocolors": { "version": "1.0.0", "license": "ISC" @@ -21465,7 +21038,6 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -21506,15 +21078,16 @@ } }, "node_modules/postcss-loader": { - "version": "6.2.1", - "license": "MIT", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -21526,8 +21099,9 @@ } }, "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.8", - "license": "ISC", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -21590,16 +21164,17 @@ } }, "node_modules/postcss-rtlcss": { - "version": "3.7.2", - "license": "Apache-2.0", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-4.0.8.tgz", + "integrity": "sha512-CR2sY889PHnX6K8rjW9FG4Qvm9UJsIekDakMtEYGH3zgFp9XADMeaKcA0hPOmkClNh0jWbkaPBm0jZ6fHmqkJQ==", "dependencies": { - "rtlcss": "^3.5.0" + "rtlcss": "4.1.0" }, "engines": { "node": ">=12.0.0" }, "peerDependencies": { - "postcss": "^8.0.0" + "postcss": "^8.4.21" } }, "node_modules/postcss-selector-parser": { @@ -21620,7 +21195,8 @@ }, "node_modules/prebuild-install": { "version": "7.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -21642,16 +21218,55 @@ "node": ">=10" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "license": "MIT", + "node_modules/prebuild-install/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">= 6" } }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", "peer": true, "engines": { @@ -21934,35 +21549,15 @@ ], "license": "MIT" }, - "node_modules/raf": { - "version": "3.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "dev": true, - "license": "CC0-1.0" + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" }, "node_modules/ramda": { "version": "0.26.1", "license": "MIT" }, - "node_modules/randexp": { - "version": "0.4.6", - "dev": true, - "license": "MIT", - "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/randombytes": { "version": "2.1.0", "license": "MIT", @@ -21999,7 +21594,8 @@ }, "node_modules/rc": { "version": "1.2.8", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -22012,7 +21608,8 @@ }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "engines": { "node": ">=0.10.0" } @@ -23285,6 +22882,12 @@ "version": "1.0.0", "license": "MIT" }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "dev": true + }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "dev": true, @@ -23393,15 +22996,6 @@ "rimraf": "bin.js" } }, - "node_modules/rst-selector-parser": { - "version": "2.2.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, "node_modules/rsvp": { "version": "4.8.5", "license": "MIT", @@ -23410,16 +23004,20 @@ } }, "node_modules/rtlcss": { - "version": "3.5.0", - "license": "MIT", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.0.tgz", + "integrity": "sha512-W+N4hh0nVqVrrn3mRkHakxpB+c9cQ4CRT67O39kgA+1DjyhrdsqyCqIuHXyvWaXn4/835n+oX3fYJCi4+G/06A==", "dependencies": { - "find-up": "^5.0.0", + "escalade": "^3.1.1", "picocolors": "^1.0.0", - "postcss": "^8.3.11", + "postcss": "^8.4.21", "strip-json-comments": "^3.1.1" }, "bin": { "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" } }, "node_modules/run-parallel": { @@ -23698,8 +23296,9 @@ } }, "node_modules/sass": { - "version": "1.62.0", - "license": "MIT", + "version": "1.65.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.65.1.tgz", + "integrity": "sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -23713,14 +23312,14 @@ } }, "node_modules/sass-loader": { - "version": "12.6.0", - "license": "MIT", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", "dependencies": { - "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -23728,7 +23327,7 @@ }, "peerDependencies": { "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" @@ -24001,17 +23600,18 @@ "license": "MIT" }, "node_modules/sharp": { - "version": "0.32.1", + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", - "detect-libc": "^2.0.1", + "detect-libc": "^2.0.2", "node-addon-api": "^6.1.0", "prebuild-install": "^7.1.1", - "semver": "^7.5.0", + "semver": "^7.5.4", "simple-get": "^4.0.1", - "tar-fs": "^2.1.1", + "tar-fs": "^3.0.4", "tunnel-agent": "^0.6.0" }, "engines": { @@ -24023,7 +23623,8 @@ }, "node_modules/sharp/node_modules/color": { "version": "4.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -24034,7 +23635,8 @@ }, "node_modules/sharp/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "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" }, @@ -24044,11 +23646,13 @@ }, "node_modules/sharp/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/sharp/node_modules/semver": { - "version": "7.5.1", - "license": "ISC", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -24104,6 +23708,8 @@ }, "node_modules/simple-concat": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "funding": [ { "type": "github", @@ -24117,11 +23723,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/simple-get": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "funding": [ { "type": "github", @@ -24136,7 +23743,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -24155,12 +23761,13 @@ "license": "MIT" }, "node_modules/sirv": { - "version": "1.0.19", - "license": "MIT", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" }, "engines": { "node": ">= 10" @@ -24181,7 +23788,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "peer": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -24554,10 +24160,6 @@ "version": "1.0.3", "license": "BSD-3-Clause" }, - "node_modules/stable": { - "version": "0.1.8", - "license": "MIT" - }, "node_modules/stack-utils": { "version": "2.0.6", "license": "MIT", @@ -24680,6 +24282,15 @@ "node": ">= 0.4" } }, + "node_modules/streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "node_modules/strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -24836,8 +24447,9 @@ } }, "node_modules/style-loader": { - "version": "3.3.2", - "license": "MIT", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", "engines": { "node": ">= 12.13.0" }, @@ -24968,92 +24580,41 @@ }, "node_modules/svg-parser": { "version": "2.0.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, "node_modules/svgo": { - "version": "2.8.0", - "license": "MIT", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", + "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { "node": ">= 10" } }, - "node_modules/svgo/node_modules/css-select": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.1", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "2.2.0", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/symbol-observable": { "version": "1.2.0", "license": "MIT", @@ -25077,39 +24638,23 @@ } }, "node_modules/tar-fs": { - "version": "2.1.1", - "license": "MIT", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dependencies": { - "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^3.1.5" } }, "node_modules/tar-stream": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "license": "MIT", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/terminal-link": { @@ -25374,8 +24919,9 @@ } }, "node_modules/totalist": { - "version": "1.1.0", - "license": "MIT", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "engines": { "node": ">=6" } @@ -25420,6 +24966,7 @@ }, "node_modules/ts-jest": { "version": "26.5.6", + "devOptional": true, "license": "MIT", "dependencies": { "bs-logger": "0.x", @@ -25446,6 +24993,7 @@ }, "node_modules/ts-jest/node_modules/mkdirp": { "version": "1.0.4", + "devOptional": true, "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" @@ -25456,6 +25004,7 @@ }, "node_modules/ts-jest/node_modules/semver": { "version": "7.3.8", + "devOptional": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -25498,26 +25047,10 @@ "version": "2.4.1", "license": "0BSD" }, - "node_modules/tsutils": { - "version": "3.21.0", - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, "node_modules/tunnel-agent": { "version": "0.6.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -26203,19 +25736,20 @@ } }, "node_modules/webpack": { - "version": "5.79.0", - "license": "MIT", + "version": "5.88.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", + "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -26225,7 +25759,7 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", @@ -26248,18 +25782,26 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.8.0", - "license": "MIT", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz", + "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", "commander": "^7.2.0", + "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", - "lodash": "^4.17.20", + "is-plain-object": "^5.0.0", + "lodash.debounce": "^4.0.8", + "lodash.escape": "^4.0.1", + "lodash.flatten": "^4.4.0", + "lodash.invokemap": "^4.6.0", + "lodash.pullall": "^4.2.0", + "lodash.uniqby": "^4.7.0", "opener": "^1.5.2", - "sirv": "^1.0.7", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", "ws": "^7.3.1" }, "bin": { @@ -26270,63 +25812,36 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { - "version": "8.2.0", - "license": "MIT", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "engines": { "node": ">=0.4.0" } }, - "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 10" } }, - "node_modules/webpack-bundle-analyzer/node_modules/chalk": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/webpack-bundle-analyzer/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==", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "license": "MIT", - "engines": { - "node": ">= 10" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/webpack-bundle-analyzer/node_modules/gzip-size": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dependencies": { "duplexer": "^0.1.2" }, @@ -26337,33 +25852,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/webpack-bundle-analyzer/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/webpack-cli": { - "version": "5.0.1", - "license": "MIT", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.0.1", - "@webpack-cli/info": "^2.0.1", - "@webpack-cli/serve": "^2.0.1", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", - "commander": "^9.4.1", + "commander": "^10.0.1", "cross-spawn": "^7.0.3", "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", @@ -26398,10 +25905,11 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "9.5.0", - "license": "MIT", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/webpack-cli/node_modules/webpack-merge": { @@ -26482,8 +25990,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.13.2", - "license": "MIT", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -26491,7 +26000,7 @@ "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", @@ -26540,7 +26049,8 @@ }, "node_modules/webpack-dev-server/node_modules/ajv": { "version": "8.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -26554,7 +26064,8 @@ }, "node_modules/webpack-dev-server/node_modules/ajv-keywords": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -26564,11 +26075,13 @@ }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/webpack-dev-server/node_modules/open": { - "version": "8.4.0", - "license": "MIT", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -26583,7 +26096,8 @@ }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "3.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { "glob": "^7.1.3" }, @@ -26595,13 +26109,14 @@ } }, "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "license": "MIT", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -26612,8 +26127,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.13.0", - "license": "MIT", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "engines": { "node": ">=10.0.0" }, @@ -26658,6 +26174,23 @@ "node": ">=0.10.0" } }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/webpack/node_modules/tapable": { "version": "2.2.1", "license": "MIT", @@ -26945,776 +26478,122 @@ "@edx/frontend-platform": "<4.1.0" } }, - "packages/frontend-platform-shim/node_modules/@babel/cli": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.5.tgz", - "integrity": "sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==", + "packages/frontend-platform-shim/node_modules/@edx/frontend-build": { + "version": "13.0.14", + "resolved": "https://registry.npmjs.org/@edx/frontend-build/-/frontend-build-13.0.14.tgz", + "integrity": "sha512-AR/2GvIecX4LxJT4QIoeeBbnUVjjpRnT2P6gaqO8zEeoAS9ugYRQmqvCCeKJnt7vGmEEcincKfWJQu5nfUGfdA==", "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" + "@babel/cli": "7.22.5", + "@babel/core": "7.22.5", + "@babel/eslint-parser": "7.22.9", + "@babel/plugin-proposal-class-properties": "7.18.6", + "@babel/plugin-proposal-object-rest-spread": "7.20.7", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/preset-env": "7.22.5", + "@babel/preset-react": "7.22.5", + "@edx/eslint-config": "3.2.0", + "@edx/new-relic-source-map-webpack-plugin": "2.1.0", + "@formatjs/cli": "^6.0.3", + "@fullhuman/postcss-purgecss": "5.0.0", + "@pmmmwh/react-refresh-webpack-plugin": "0.5.11", + "@svgr/webpack": "8.1.0", + "autoprefixer": "10.4.16", + "babel-jest": "26.6.3", + "babel-loader": "9.1.3", + "babel-plugin-formatjs": "^10.4.0", + "babel-plugin-transform-imports": "2.0.0", + "babel-polyfill": "6.26.0", + "chalk": "4.1.2", + "clean-webpack-plugin": "4.0.0", + "css-loader": "5.2.7", + "cssnano": "6.0.1", + "dotenv": "8.6.0", + "dotenv-webpack": "8.0.1", + "eslint": "8.44.0", + "eslint-config-airbnb": "19.0.4", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-jsx-a11y": "6.7.1", + "eslint-plugin-react": "7.32.2", + "eslint-plugin-react-hooks": "4.6.0", + "express": "4.18.2", + "file-loader": "6.2.0", + "html-webpack-plugin": "5.5.4", + "identity-obj-proxy": "3.0.0", + "image-minimizer-webpack-plugin": "3.8.3", + "jest": "26.6.3", + "mini-css-extract-plugin": "1.6.2", + "postcss": "8.4.32", + "postcss-custom-media": "10.0.2", + "postcss-loader": "7.3.3", + "postcss-rtlcss": "4.0.9", + "react-dev-utils": "12.0.1", + "react-refresh": "0.14.0", + "resolve-url-loader": "5.0.0", + "sass": "1.69.5", + "sass-loader": "13.3.2", + "sharp": "0.33.0", + "source-map-loader": "4.0.1", + "style-loader": "3.3.3", + "url-loader": "4.1.1", + "webpack": "5.89.0", + "webpack-bundle-analyzer": "4.10.1", + "webpack-cli": "5.1.4", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.9.0" }, "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" + "fedx-scripts": "bin/fedx-scripts.js" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": "^16.9.0 || ^17.0.0" } }, - "packages/frontend-platform-shim/node_modules/@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", - "peer": true, + "packages/frontend-platform-shim/node_modules/@edx/frontend-platform": { + "version": "4.5.1", + "license": "AGPL-3.0", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "@cospired/i18n-iso-languages": "4.1.0", + "@formatjs/intl-pluralrules": "4.3.3", + "@formatjs/intl-relativetimeformat": "10.0.1", + "axios": "0.27.2", + "axios-cache-interceptor": "0.10.7", + "form-urlencoded": "4.1.4", + "glob": "7.2.3", + "history": "4.10.1", + "i18n-iso-countries": "4.3.1", + "jwt-decode": "3.1.2", + "localforage": "1.10.0", + "localforage-memoryStorageDriver": "0.9.2", + "lodash.camelcase": "4.3.0", + "lodash.memoize": "4.1.2", + "lodash.merge": "4.6.2", + "lodash.snakecase": "4.1.1", + "pubsub-js": "1.9.4", + "react-intl": "^5.25.0", + "universal-cookie": "4.0.4" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "intl-imports.js": "i18n/scripts/intl-imports.js", + "transifex-utils.js": "i18n/scripts/transifex-utils.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "packages/frontend-platform-shim/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "peer": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@babel/preset-env": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", - "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.5", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.5", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "core-js-compat": "^3.30.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@edx/eslint-config": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@edx/eslint-config/-/eslint-config-3.2.0.tgz", - "integrity": "sha512-X2o34xr3KqmQSV/vJVv6k4FxUKYwbBATHTtTHLTYQvM9PVoM3WbKQP9tl6Z057pRErKzshJcks+4ENzDyhr11Q==", - "peer": true, - "peerDependencies": { - "eslint": "^6.8.0 || ^7.0.0 || ^8.0.0", - "eslint-config-airbnb": "^18.0.1 || ^19.0.0", - "eslint-plugin-import": "^2.20.0", - "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-react": "^7.18.0", - "eslint-plugin-react-hooks": "^1.7.0 || ^4.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/@edx/frontend-build": { - "version": "13.0.14", - "resolved": "https://registry.npmjs.org/@edx/frontend-build/-/frontend-build-13.0.14.tgz", - "integrity": "sha512-AR/2GvIecX4LxJT4QIoeeBbnUVjjpRnT2P6gaqO8zEeoAS9ugYRQmqvCCeKJnt7vGmEEcincKfWJQu5nfUGfdA==", - "peer": true, - "dependencies": { - "@babel/cli": "7.22.5", - "@babel/core": "7.22.5", - "@babel/eslint-parser": "7.22.9", - "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-proposal-object-rest-spread": "7.20.7", - "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/preset-env": "7.22.5", - "@babel/preset-react": "7.22.5", - "@edx/eslint-config": "3.2.0", - "@edx/new-relic-source-map-webpack-plugin": "2.1.0", - "@formatjs/cli": "^6.0.3", - "@fullhuman/postcss-purgecss": "5.0.0", - "@pmmmwh/react-refresh-webpack-plugin": "0.5.11", - "@svgr/webpack": "8.1.0", - "autoprefixer": "10.4.16", - "babel-jest": "26.6.3", - "babel-loader": "9.1.3", - "babel-plugin-formatjs": "^10.4.0", - "babel-plugin-transform-imports": "2.0.0", - "babel-polyfill": "6.26.0", - "chalk": "4.1.2", - "clean-webpack-plugin": "4.0.0", - "css-loader": "5.2.7", - "cssnano": "6.0.1", - "dotenv": "8.6.0", - "dotenv-webpack": "8.0.1", - "eslint": "8.44.0", - "eslint-config-airbnb": "19.0.4", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-jsx-a11y": "6.7.1", - "eslint-plugin-react": "7.32.2", - "eslint-plugin-react-hooks": "4.6.0", - "express": "4.18.2", - "file-loader": "6.2.0", - "html-webpack-plugin": "5.5.4", - "identity-obj-proxy": "3.0.0", - "image-minimizer-webpack-plugin": "3.8.3", - "jest": "26.6.3", - "mini-css-extract-plugin": "1.6.2", - "postcss": "8.4.32", - "postcss-custom-media": "10.0.2", - "postcss-loader": "7.3.3", - "postcss-rtlcss": "4.0.9", - "react-dev-utils": "12.0.1", - "react-refresh": "0.14.0", - "resolve-url-loader": "5.0.0", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "sharp": "0.33.0", - "source-map-loader": "4.0.1", - "style-loader": "3.3.3", - "url-loader": "4.1.1", - "webpack": "5.89.0", - "webpack-bundle-analyzer": "4.10.1", - "webpack-cli": "5.1.4", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.9.0" - }, - "bin": { - "fedx-scripts": "bin/fedx-scripts.js" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/@edx/frontend-platform": { - "version": "4.5.1", - "license": "AGPL-3.0", - "dependencies": { - "@cospired/i18n-iso-languages": "4.1.0", - "@formatjs/intl-pluralrules": "4.3.3", - "@formatjs/intl-relativetimeformat": "10.0.1", - "axios": "0.27.2", - "axios-cache-interceptor": "0.10.7", - "form-urlencoded": "4.1.4", - "glob": "7.2.3", - "history": "4.10.1", - "i18n-iso-countries": "4.3.1", - "jwt-decode": "3.1.2", - "localforage": "1.10.0", - "localforage-memoryStorageDriver": "0.9.2", - "lodash.camelcase": "4.3.0", - "lodash.memoize": "4.1.2", - "lodash.merge": "4.6.2", - "lodash.snakecase": "4.1.1", - "pubsub-js": "1.9.4", - "react-intl": "^5.25.0", - "universal-cookie": "4.0.4" - }, - "bin": { - "intl-imports.js": "i18n/scripts/intl-imports.js", - "transifex-utils.js": "i18n/scripts/transifex-utils.js" - }, - "peerDependencies": { - "@edx/frontend-build": ">= 8.1.0", - "@edx/paragon": ">= 10.0.0 < 21.0.0", - "prop-types": "^15.7.2", - "react": "^16.9.0 || ^17.0.0", - "react-dom": "^16.9.0 || ^17.0.0", - "react-redux": "^7.1.1", - "react-router-dom": "^5.0.1", - "redux": "^4.0.4" - } - }, - "packages/frontend-platform-shim/node_modules/@edx/new-relic-source-map-webpack-plugin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@edx/new-relic-source-map-webpack-plugin/-/new-relic-source-map-webpack-plugin-2.1.0.tgz", - "integrity": "sha512-OrlvtdsPcWuOm6NBWfUxFE06qdPiu2bf9nU4I9t8Lu7WW6NsosAB5hxm5U+MBMZP2AuVl3FAt0k0lZsu3+ri8Q==", - "peer": true, - "dependencies": { - "@newrelic/publish-sourcemap": "^5.0.1" - } - }, - "packages/frontend-platform-shim/node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", - "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", - "peer": true, - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "peer": true, - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "peer": true, - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "peer": true, - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "peer": true, - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "peer": true, - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "packages/frontend-platform-shim/node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "peer": true, - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "packages/frontend-platform-shim/node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" + "peerDependencies": { + "@edx/frontend-build": ">= 8.1.0", + "@edx/paragon": ">= 10.0.0 < 21.0.0", + "prop-types": "^15.7.2", + "react": "^16.9.0 || ^17.0.0", + "react-dom": "^16.9.0 || ^17.0.0", + "react-redux": "^7.1.1", + "react-router-dom": "^5.0.1", + "redux": "^4.0.4" } }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "packages/frontend-platform-shim/node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "peer": true }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "packages/frontend-platform-shim/node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, "packages/frontend-platform-shim/node_modules/acorn-walk": { "version": "8.3.1", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", @@ -27735,163 +26614,17 @@ "engines": { "node": ">=8" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "packages/frontend-platform-shim/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==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "packages/frontend-platform-shim/node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "packages/frontend-platform-shim/node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "peer": true, - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "packages/frontend-platform-shim/node_modules/babel-loader/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "packages/frontend-platform-shim/node_modules/babel-loader/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "packages/frontend-platform-shim/node_modules/babel-loader/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "packages/frontend-platform-shim/node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", - "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.4", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "packages/frontend-platform-shim/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", - "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "packages/frontend-platform-shim/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=8" } }, "packages/frontend-platform-shim/node_modules/chalk": { @@ -27977,32 +26710,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "peer": true }, - "packages/frontend-platform-shim/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "peer": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "packages/frontend-platform-shim/node_modules/css-loader": { "version": "5.2.7", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", @@ -28046,52 +26753,6 @@ "node": ">=10" } }, - "packages/frontend-platform-shim/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "peer": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "peer": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "peer": true, - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "peer": true - }, "packages/frontend-platform-shim/node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -28180,78 +26841,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/frontend-platform-shim/node_modules/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "packages/frontend-platform-shim/node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "packages/frontend-platform-shim/node_modules/filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", @@ -28261,22 +26850,6 @@ "node": ">= 0.4.0" } }, - "packages/frontend-platform-shim/node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "peer": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/frontend-platform-shim/node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", @@ -28374,33 +26947,6 @@ "node": ">=6" } }, - "packages/frontend-platform-shim/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "packages/frontend-platform-shim/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/frontend-platform-shim/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -28520,100 +27066,19 @@ ], "peer": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/htmlparser2/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "peer": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "packages/frontend-platform-shim/node_modules/image-minimizer-webpack-plugin": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/image-minimizer-webpack-plugin/-/image-minimizer-webpack-plugin-3.8.3.tgz", - "integrity": "sha512-Ex0cjNJc2FUSuwN7WHNyxkIZINP0M9lrN+uWJznMcsehiM5Z7ELwk+SEkSGEookK1GUd2wf+09jy1PEH5a5XmQ==", - "peer": true, - "dependencies": { - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@squoosh/lib": { - "optional": true - }, - "imagemin": { - "optional": true - }, - "sharp": { - "optional": true - }, - "svgo": { - "optional": true - } - } - }, - "packages/frontend-platform-shim/node_modules/image-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "packages/frontend-platform-shim/node_modules/image-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "packages/frontend-platform-shim/node_modules/image-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "packages/frontend-platform-shim/node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/fb55/entities?sponsor=1" } }, "packages/frontend-platform-shim/node_modules/immer": { @@ -28635,45 +27100,6 @@ "node": ">=0.10.0" } }, - "packages/frontend-platform-shim/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "packages/frontend-platform-shim/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "peer": true - }, - "packages/frontend-platform-shim/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "peer": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/frontend-platform-shim/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "peer": true - }, "packages/frontend-platform-shim/node_modules/mini-css-extract-plugin": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", @@ -28695,15 +27121,6 @@ "webpack": "^4.4.0 || ^5.0.0" } }, - "packages/frontend-platform-shim/node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "peer": true, - "engines": { - "node": ">=10" - } - }, "packages/frontend-platform-shim/node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", @@ -28721,76 +27138,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/frontend-platform-shim/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "peer": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/frontend-platform-shim/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "peer": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/frontend-platform-shim/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "peer": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "peer": true, - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/frontend-platform-shim/node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "peer": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/frontend-platform-shim/node_modules/postcss": { "version": "8.4.32", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", @@ -28819,43 +27166,6 @@ "node": "^10 || ^12 || >=14" } }, - "packages/frontend-platform-shim/node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", - "peer": true, - "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "packages/frontend-platform-shim/node_modules/postcss-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "packages/frontend-platform-shim/node_modules/postcss-rtlcss": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-4.0.9.tgz", @@ -28992,21 +27302,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "packages/frontend-platform-shim/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "packages/frontend-platform-shim/node_modules/rtlcss": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz", @@ -29042,43 +27337,6 @@ "node": ">=14.0.0" } }, - "packages/frontend-platform-shim/node_modules/sass-loader": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", - "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", - "peer": true, - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, "packages/frontend-platform-shim/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -29097,15 +27355,6 @@ "url": "https://opencollective.com/webpack" } }, - "packages/frontend-platform-shim/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "packages/frontend-platform-shim/node_modules/sharp": { "version": "0.33.0", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.0.tgz", @@ -29153,60 +27402,21 @@ "peer": true, "dependencies": { "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "packages/frontend-platform-shim/node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "packages/frontend-platform-shim/node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "peer": true, - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "packages/frontend-platform-shim/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "peer": true, + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "packages/frontend-platform-shim/node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "packages/frontend-platform-shim/node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "peer": true, - "engines": { - "node": ">= 12.13.0" - }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/ljharb" } }, "packages/frontend-platform-shim/node_modules/supports-color": { @@ -29221,40 +27431,6 @@ "node": ">=8" } }, - "packages/frontend-platform-shim/node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", - "peer": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "packages/frontend-platform-shim/node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "peer": true, - "engines": { - "node": ">= 10" - } - }, "packages/frontend-platform-shim/node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -29288,27 +27464,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "peer": true }, - "packages/frontend-platform-shim/node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "packages/frontend-platform-shim/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/frontend-platform-shim/node_modules/webpack": { "version": "5.89.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", @@ -29392,187 +27547,6 @@ "node": ">= 10" } }, - "packages/frontend-platform-shim/node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "peer": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "packages/frontend-platform-shim/node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "peer": true, - "engines": { - "node": ">=14" - } - }, - "packages/frontend-platform-shim/node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "peer": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "packages/frontend-platform-shim/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==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "packages/frontend-platform-shim/node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "packages/frontend-platform-shim/node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "packages/frontend-platform-shim/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==", - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "packages/frontend-platform-shim/node_modules/webpack-merge": { "version": "5.9.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", @@ -29594,18 +27568,6 @@ "engines": { "node": ">=10.13.0" } - }, - "packages/frontend-platform-shim/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "peer": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index e128636335..f050f007bb 100644 --- a/package.json +++ b/package.json @@ -92,15 +92,14 @@ "devDependencies": { "@edx/browserslist-config": "1.0.0", "@edx/frontend-build": "^12.9.0-alpha.1", + "@edx/react-unit-test-utils": "1.7.1", "@faker-js/faker": "^7.6.0", "@testing-library/dom": "9.3.1", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "^11.2.7", "@testing-library/react-hooks": "5.0.3", "@testing-library/user-event": "12.8.3", - "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "css-loader": "5.2.6", - "enzyme": "3.11.0", "husky": "0.14.3", "identity-obj-proxy": "3.0.0", "jest-canvas-mock": "^2.4.0", diff --git a/src/components/Admin/AIAnalyticsSummary.test.jsx b/src/components/Admin/AIAnalyticsSummary.test.jsx index 71d5cadf69..7fbd6ad2ed 100644 --- a/src/components/Admin/AIAnalyticsSummary.test.jsx +++ b/src/components/Admin/AIAnalyticsSummary.test.jsx @@ -1,7 +1,6 @@ import React from 'react'; -import { mount } from 'enzyme'; +import { fireEvent, render, screen } from '@testing-library/react'; import { Provider } from 'react-redux'; -import renderer from 'react-test-renderer'; import configureMockStore from 'redux-mock-store'; import { MemoryRouter } from 'react-router-dom'; import { IntlProvider } from '@edx/frontend-platform/i18n'; @@ -63,24 +62,20 @@ const AIAnalyticsSummaryWrapper = props => ( describe('', () => { it('should render action buttons correctly', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + + ); expect(tree).toMatchSnapshot(); }); it('should display AnalyticsDetailCard with learner_engagement data when Summarize Analytics button is clicked', () => { - const wrapper = mount(); - wrapper.find('[data-testid="summarize-analytics"]').first().simulate('click'); + render(); + fireEvent.click(screen.getByTestId('summarize-analytics')); - const tree = renderer - .create() - .toJSON(); + const { container: tree} = render(); expect(tree).toMatchSnapshot(); }); @@ -99,12 +94,10 @@ describe('', () => { it('should handle null analytics data', () => { const insightsData = { ...mockedInsights, learner_engagement: null }; - const wrapper = mount(); - wrapper.find('[data-testid="summarize-analytics"]').first().simulate('click'); + render(); + fireEvent.click(screen.getByTestId('summarize-analytics')); - const tree = renderer - .create() - .toJSON(); + const { container: tree } = render(); expect(tree).toMatchSnapshot(); }); diff --git a/src/components/Admin/Admin.test.jsx b/src/components/Admin/Admin.test.jsx index 91dda8471f..7489d88397 100644 --- a/src/components/Admin/Admin.test.jsx +++ b/src/components/Admin/Admin.test.jsx @@ -1,13 +1,12 @@ import React from 'react'; import { Provider } from 'react-redux'; -import renderer from 'react-test-renderer'; -import { mount } from 'enzyme'; -import { MemoryRouter, Link } from 'react-router-dom'; +import { MemoryRouter } from 'react-router-dom'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { sendEnterpriseTrackEvent } from '@edx/frontend-enterprise-utils'; import { IntlProvider } from '@edx/frontend-platform/i18n'; +import { fireEvent, render, screen } from '@testing-library/react'; import EnterpriseDataApiService from '../../data/services/EnterpriseDataApiService'; import Admin from './index'; import { CSV_CLICK_SEGMENT_EVENT_NAME } from '../DownloadCsvButton'; @@ -88,225 +87,195 @@ describe('', () => { describe('renders correctly', () => { it('calls fetchDashboardAnalytics prop', () => { const mockFetchDashboardAnalytics = jest.fn(); - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(mockFetchDashboardAnalytics).toHaveBeenCalled(); expect(tree).toMatchSnapshot(); }); it('with no dashboard analytics data', () => { const mockFetchDashboardAnalytics = jest.fn(); - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(mockFetchDashboardAnalytics).toHaveBeenCalled(); expect(tree).toMatchSnapshot(); }); describe('with dashboard analytics data', () => { it('renders full report', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders registered but not enrolled report', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders # courses enrolled by learners', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders learners not enrolled in an active course', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders top active learners', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders inactive learners past week', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders inactive learners past month', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders # of courses completed by learner', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders # of courses completed by learner in past week', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('renders collapsible cards', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); }); it('with error state', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('with loading state', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); it('with no dashboard insights data', () => { const insights = null; - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); @@ -344,14 +313,12 @@ describe('', () => { created_at: '2023-10-02T03:24:40Z', }, }; - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + , + ); expect(tree).toMatchSnapshot(); }); @@ -361,36 +328,37 @@ describe('', () => { describe('handle changes to enterpriseId prop', () => { it('handles non-empty change in enterpriseId prop', () => { const mockFetchDashboardAnalytics = jest.fn(); - const wrapper = mount(( + const wrapper = render(( )); - wrapper.setProps({ - enterpriseId: 'test-enterprise-id-2', - }); + wrapper.rerender(); - expect(wrapper.prop('enterpriseId')).toEqual('test-enterprise-id-2'); - expect(mockFetchDashboardAnalytics).toBeCalled(); + expect(mockFetchDashboardAnalytics).toBeCalledWith('test-enterprise-id-2'); + expect(mockFetchDashboardAnalytics).toBeCalledTimes(2); }); it('handles empty change in enterpriseId prop', () => { const mockFetchDashboardAnalytics = jest.fn(); - const wrapper = mount(( + const wrapper = render(( )); - wrapper.setProps({ - enterpriseId: null, - }); + wrapper.rerender(); - expect(wrapper.prop('enterpriseId')).toEqual(null); - expect(mockFetchDashboardAnalytics).toBeCalled(); + expect(mockFetchDashboardAnalytics).toBeCalledTimes(1); }); }); @@ -445,7 +413,7 @@ describe('', () => { it(key, () => { spy = jest.spyOn(EnterpriseDataApiService, actionMetadata.csvFetchMethod); - const wrapper = mount(( + const wrapper = render(( ', () => { }} /> )); - wrapper.find('.download-btn').hostNodes().simulate('click'); + fireEvent.click(wrapper.container.querySelector('.download-btn')); expect(spy).toHaveBeenCalledWith(...actionMetadata.csvFetchParams); expect(sendEnterpriseTrackEvent).toHaveBeenCalledWith( enterpriseId, @@ -474,7 +442,7 @@ describe('', () => { }); describe('reset form button', () => { it('should not be present if there is no query', () => { - const wrapper = mount(( + render(( ', () => { } /> )); - expect(wrapper.text()).not.toContain('Reset Filters'); + expect(screen.queryByText('Reset Filters')).toBeFalsy(); }); it('should not be present if only query is ordering', () => { - const wrapper = mount(( + render(( ', () => { } /> )); - expect(wrapper.text()).not.toContain('Reset Filters'); + expect(screen.queryByText('Reset Filters')).toBeFalsy(); }); it('should not be present if query is null', () => { - const wrapper = mount(( + render(( ', () => { } /> )); - expect(wrapper.text()).not.toContain('Reset Filters'); + expect(screen.queryByText('Reset Filters')).toBeFalsy(); }); it('should be present if there is a querystring', () => { const path = '/lael/'; - const wrapper = mount(( + render(( ', () => { } /> )); - expect(wrapper.text()).toContain('Reset Filters'); - const link = wrapper.find(Link).find('#reset-filters'); - expect(link.first().props().to).toEqual(path); + const resetFilters = screen.getByText('Reset Filters'); + + expect(resetFilters).toBeTruthy(); + expect(resetFilters.href).toContain(path); }); it('should be present if there is a querystring mixed with ordering', () => { const path = '/lael/'; const nonSearchQuery = 'ordering=xyz'; - const wrapper = mount(( + render(( ', () => { } /> )); - expect(wrapper.text()).toContain('Reset Filters'); - const link = wrapper.find(Link).find('#reset-filters'); - expect(link.first().props().to).toEqual(`${path}?${nonSearchQuery}`); + const resetFilters = screen.getByText('Reset Filters'); + + expect(resetFilters).toBeTruthy(); + expect(resetFilters.href).toContain(`${path}?${nonSearchQuery}`); }); it('should not disturb non-search-releated queries', () => { const path = '/lael/'; const nonSearchQuery = 'features=bestfeature'; - const wrapper = mount(( + render(( ', () => { } /> )); - expect(wrapper.text()).toContain('Reset Filters'); - const link = wrapper.find(Link).find('#reset-filters'); - expect(link.first().props().to).toEqual(`${path}?${nonSearchQuery}`); + + const resetFilters = screen.getByText('Reset Filters'); + + expect(resetFilters).toBeTruthy(); + expect(resetFilters.href).toContain(`${path}?${nonSearchQuery}`); }); }); }); diff --git a/src/components/Admin/__snapshots__/AIAnalyticsSummary.test.jsx.snap b/src/components/Admin/__snapshots__/AIAnalyticsSummary.test.jsx.snap index ff111de353..4edaec3db8 100644 --- a/src/components/Admin/__snapshots__/AIAnalyticsSummary.test.jsx.snap +++ b/src/components/Admin/__snapshots__/AIAnalyticsSummary.test.jsx.snap @@ -1,23 +1,21 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` should display AnalyticsDetailCard with learner_engagement data when Summarize Analytics button is clicked 1`] = ` -Array [ +
, - ",", -] +
+ , + `; exports[` should handle null analytics data 1`] = ` -Array [ +
, - ",", -] +
+ , + `; exports[` should render action buttons correctly 1`] = ` -Array [ +
, - ",", -] +
+ , + `; diff --git a/src/components/Admin/__snapshots__/Admin.test.jsx.snap b/src/components/Admin/__snapshots__/Admin.test.jsx.snap index 3ea85ed607..e6b494ab9d 100644 --- a/src/components/Admin/__snapshots__/Admin.test.jsx.snap +++ b/src/components/Admin/__snapshots__/Admin.test.jsx.snap @@ -1,10993 +1,10454 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` renders correctly calls fetchDashboardAnalytics prop 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
- Loading... -
- +
+ Loading... +
- ‌ + + ‌ + +
-
-
- - ‌ + + ‌ + +
-
-
- - ‌ + + ‌ + +
-
-
- - ‌ + + ‌ + +
-
-
+
-
-
- Loading... - - Loading - + Loading... + + Loading + +
-
-
-

- Full Report -

+

+ Full Report +

+
+
+ class="row" + > +
+
+
+
-
-
-
-
-
-
-
+
+ `; exports[` renders correctly with dashboard analytics data renders # courses enrolled by learners 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders # of courses completed by learner 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 +
+ Showing data as of + July 31, 2018 +
+
+ +
- -
-
-
-
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders # of courses completed by learner in past week 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders collapsible cards 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 +
+ Showing data as of + July 31, 2018 +
+
+ +
- -
-
-
-
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders full report 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders inactive learners past month 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 +
+ Showing data as of + July 31, 2018 +
+
+ +
- -
-
-
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders inactive learners past week 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders learners not enrolled in an active course 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 +
+ Showing data as of + July 31, 2018 +
+
+ +
- -
-
-
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders registered but not enrolled report 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with dashboard analytics data renders top active learners 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

-
-
-
-
+

+ Full Report +

+
+
+
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
- -
+ + `; exports[` renders correctly with dashboard insights data renders dashboard insights data correctly 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
- - +

+ Overview +

-
-
-
-

- - 3 - - - - - - -

-

- total number of learners registered -

-
+ +
+
+
+
+
-
+ - + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; exports[` renders correctly with error state 1`] = ` -
-
+
-
-

- Learner Progress Report -

-
-
- edX logo +
+
+

+ Learner Progress Report +

+
+
+ edX logo +
-
-
+
+

+ Overview +

+
+
+
-

- Overview -

+
-
-
-
-
-
-
-
- Loading... - - Loading - + Loading... + + Loading + +
-
-
-

- Full Report -

+

+ Full Report +

+
+
+ class="row" + > +
+
+
+
-
-
-
-
-
-
-
+
+ `; exports[` renders correctly with loading state 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
- Loading... -
- +
+ Loading... +
- ‌ + + ‌ + +
-
-
- - ‌ + + ‌ + +
-
-
- - ‌ + + ‌ + +
-
-
- - ‌ + + ‌ + +
-
-
+
-
-
- Loading... - - Loading - + Loading... + + Loading + +
-
-
-

- Full Report -

+

+ Full Report +

+
+
+ class="row" + > +
+
+
+
-
-
-
-
-
-
-
+
+ `; exports[` renders correctly with no dashboard analytics data 1`] = ` -
-
- Loading... -
- +
+
+ Loading... +
- ‌ + + ‌ + +
-
- - - ‌ + + ‌ + +
-
-
-
+
+ `; exports[` renders correctly with no dashboard insights data 1`] = ` -
-
-
-

- Learner Progress Report -

-
-
- edX logo -
-
-
+
-
-

- Overview -

+
+

+ Learner Progress Report +

+
+
+ edX logo
-
-
+ class="row mt-4" + > +
+

+ Overview +

+
+
+
+
+
-

- - 3 - - - - - - -

-

- total number of learners registered -

+ class="card" + > +
+

+ + 3 + + + + +

+

+ total number of learners registered +

+
-
-
- + + +
-
-
-

- - 1 - - - - - - -

-

- learners enrolled in at least one course -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ learners enrolled in at least one course +

+
-
-
- + - + + Who is no longer enrolled in a current course? + +
+ +
- -
-

- - 1 - - - - - - -

-

- active learners in the past week -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ active learners in the past week +

+
-
- - + + Who has not been active for over a month? + +
+ +
- -
-

- - 1 - - - - - - -

-

- course completions -

+ class="card" + > +
+

+ + 1 + + + + +

+

+ course completions +

+
-
-
- + - + + Who completed a course in the past week? + +
+ +
- -
- Loading... - - Loading - + Loading... + + Loading + +
- -
-

- Full Report -

+

+ Full Report +

+
+
-
-
-
+ class="row" + > +
+
-
-
- Showing data as of - July 31, 2018 -
-
- + + + + Download full report (CSV) + +
-
-
-
- -
-
-
-
-
- -
- + + +
-
-
-
-
+
+
+ +
+ + + + + +
+
-
-
-
+ + `; diff --git a/src/components/AdminRegisterPage/AdminRegisterPage.test.jsx b/src/components/AdminRegisterPage/AdminRegisterPage.test.jsx index 4912452e38..e876b96451 100644 --- a/src/components/AdminRegisterPage/AdminRegisterPage.test.jsx +++ b/src/components/AdminRegisterPage/AdminRegisterPage.test.jsx @@ -1,9 +1,8 @@ import React from 'react'; -import { mount } from 'enzyme'; import { MemoryRouter, Routes, Route, } from 'react-router-dom'; -import { waitFor } from '@testing-library/react'; +import { waitFor, render, screen } from '@testing-library/react'; import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; import { isEnterpriseUser } from '@edx/frontend-enterprise-utils'; @@ -50,10 +49,10 @@ describe('', () => { LmsApiService.fetchEnterpriseBySlug.mockImplementation(() => Promise.resolve({ data: mockEnterpriseCustomer, })); - const wrapper = mount(); + render(); // verify that the loading skeleton appears during redirect - await waitFor(() => expect(wrapper.contains(EnterpriseAppSkeleton)).toBeTruthy()); + await waitFor(() => expect(screen.getByText('Loading...')).toBeTruthy()); await waitFor(() => expect(global.location.href).toBeTruthy()); }); @@ -70,8 +69,8 @@ describe('', () => { LmsApiService.fetchEnterpriseBySlug.mockImplementation(() => Promise.resolve({ data: mockEnterpriseCustomer, })); - const wrapper = mount(); - await waitFor(() => expect(wrapper.find(EnterpriseAppSkeleton).exists()).toBeTruthy()); + render(); + await waitFor(() => expect(screen.getByText('Loading...')).toBeTruthy()); }); }); @@ -84,7 +83,7 @@ describe('', () => { LmsApiService.fetchEnterpriseBySlug.mockImplementation(() => Promise.resolve({ data: mockEnterpriseCustomer, })); - mount(); + render(); const expectedRedirectRoute = `/${TEST_ENTERPRISE_SLUG}/admin/register/activate`; await waitFor(() => expect(mockNavigate).toHaveBeenCalledWith(expectedRedirectRoute)); }); diff --git a/src/components/BulkEnrollmentPage/stepper/ReviewItem.test.jsx b/src/components/BulkEnrollmentPage/stepper/ReviewItem.test.jsx index 98ce1c8995..c646443bbc 100644 --- a/src/components/BulkEnrollmentPage/stepper/ReviewItem.test.jsx +++ b/src/components/BulkEnrollmentPage/stepper/ReviewItem.test.jsx @@ -2,9 +2,7 @@ import { screen, render } from '@testing-library/react'; import '@testing-library/jest-dom/extend-expect'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { mount } from 'enzyme'; -import { IconButton } from '@edx/paragon'; import ReviewItem from './ReviewItem'; import { deleteSelectedRowAction } from '../data/actions'; @@ -29,9 +27,8 @@ describe('AddLearnersStep', () => { expect(screen.getByText(defaultProps.row.values.foo)).toBeInTheDocument(); }); it('remove button gets rendered with a correctly named aria label prop', () => { - const wrapper = mount(); - const instance = wrapper.find(IconButton); - expect(instance.prop('alt')).toEqual(defaultProps.altText); + render(); + expect(screen.getByTitle(defaultProps.altText)).toBeInTheDocument(); }); it('dispatches the deleteSelected row action when the delete button is clicked', () => { render(); diff --git a/src/components/BulkEnrollmentPage/table/CourseSearchResultsCells.test.jsx b/src/components/BulkEnrollmentPage/table/CourseSearchResultsCells.test.jsx index 53adfe920a..261eda0dd2 100644 --- a/src/components/BulkEnrollmentPage/table/CourseSearchResultsCells.test.jsx +++ b/src/components/BulkEnrollmentPage/table/CourseSearchResultsCells.test.jsx @@ -1,5 +1,6 @@ import React from 'react'; -import { mount } from 'enzyme'; +import '@testing-library/jest-dom/extend-expect'; +import { render, screen } from '@testing-library/react'; import { CourseNameCell, FormattedDateCell } from './CourseSearchResultsCells'; const testCourseName = 'TestCourseName'; @@ -14,15 +15,15 @@ describe('CourseNameCell', () => { }, }; const slug = 'sluggy'; - const wrapper = mount(); + const wrapper = render(); it('displays the course name', () => { - expect(wrapper.text()).toEqual(testCourseName); + expect(screen.getByText(testCourseName)).toBeInTheDocument(); }); }); describe('', () => { it('renders a formatted date', () => { - const wrapper = mount(); - expect(wrapper.text()).toEqual('Sep 10, 2020 - Sep 10, 2030'); + render(); + expect(screen.getByText('Sep 10, 2020 - Sep 10, 2030')).toBeInTheDocument(); }); }); diff --git a/src/components/BulkEnrollmentResultsDownloadPage/BulkEnrollmentResultsDownloadPage.test.jsx b/src/components/BulkEnrollmentResultsDownloadPage/BulkEnrollmentResultsDownloadPage.test.jsx index ce118dccff..a5be212d5d 100644 --- a/src/components/BulkEnrollmentResultsDownloadPage/BulkEnrollmentResultsDownloadPage.test.jsx +++ b/src/components/BulkEnrollmentResultsDownloadPage/BulkEnrollmentResultsDownloadPage.test.jsx @@ -1,5 +1,6 @@ import React from 'react'; -import { mount } from 'enzyme'; +import PropTypes from 'prop-types'; +import { render, act } from '@testing-library/react'; import { createMemoryHistory } from 'history'; import { MemoryRouter as Router, Routes, Route } from 'react-router-dom'; import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; @@ -7,8 +8,6 @@ import { Provider } from 'react-redux'; import thunk from 'redux-thunk'; import configureMockStore from 'redux-mock-store'; -import { act } from '@testing-library/react'; - import BulkEnrollmentResultsDownloadPage from './index'; import LicenseManagerApiService from '../../data/services/LicenseManagerAPIService'; @@ -66,7 +65,7 @@ describe('', () => { initialEntries: [`/${TEST_ENTERPRISE_SLUG}/admin/bulk-enrollment-results/${TEST_BULK_ENROLLMENT_UUID}`], }); await act(async () => { - mount(); + render(); }); await act(() => mockPromiseResolve); const expectedRedirectRoute = `/${TEST_ENTERPRISE_SLUG}/admin/bulk-enrollment-results/${TEST_BULK_ENROLLMENT_UUID}`; diff --git a/src/components/CodeAssignmentModal/BulkAssignFields.jsx b/src/components/CodeAssignmentModal/BulkAssignFields.jsx index b130643e5a..9b68369bec 100644 --- a/src/components/CodeAssignmentModal/BulkAssignFields.jsx +++ b/src/components/CodeAssignmentModal/BulkAssignFields.jsx @@ -7,7 +7,7 @@ import { normalizeFileUpload } from '../../utils'; const BulkAssignFields = () => ( <> -

Add learners

+

Add learners

( <> -

Add learner

+

Add learner

({ default: () => BNR_NEW_FEATURE_ALERT_TEXT, })); +jest.mock('@edx/paragon/icons', () => ({ + ...jest.requireActual('@edx/paragon/icons'), + ExpandLess: () =>
, + ExpandMore: () =>
, +})); + const mockStore = configureMockStore([thunk]); const initialState = { portalConfiguration: { @@ -102,11 +107,9 @@ const sampleCouponData = { describe('ManageCodesTabWrapper', () => { describe('renders', () => { it('renders empty results correctly', () => { - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + + ); expect(tree).toMatchSnapshot(); }); @@ -130,11 +133,9 @@ describe('ManageCodesTabWrapper', () => { }, }); - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + + ); expect(tree).toMatchSnapshot(); }); @@ -147,11 +148,9 @@ describe('ManageCodesTabWrapper', () => { }, }); - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + + ); expect(tree).toMatchSnapshot(); }); @@ -164,17 +163,15 @@ describe('ManageCodesTabWrapper', () => { }, }); - const tree = renderer - .create(( - - )) - .toJSON(); + const { container: tree } = render( + + ); expect(tree).toMatchSnapshot(); }); }); it('handles location.state on componentDidMount', () => { - const wrapper = mount(( + render(( { /> )); - expect(wrapper.find('ManageCodesTab').instance().state.hasRequestedCodes).toBeTruthy(); + expect(screen.getByText('Request for more codes received')).toBeTruthy(); }); it('handles overview_page query parameter change', () => { @@ -201,15 +198,13 @@ describe('ManageCodesTabWrapper', () => { }); const spy = jest.spyOn(store, 'dispatch'); - const wrapper = mount(); + const wrapper = render(); spy.mockRestore(); - wrapper.setProps({ - location: { - search: '?overview_page=2', - }, - }); + wrapper.rerender(); expect(spy).toHaveBeenCalledTimes(1); }); @@ -217,7 +212,7 @@ describe('ManageCodesTabWrapper', () => { it('calls clearCouponOrders() on componentWillUnmount', () => { const store = mockStore({ ...initialState }); - const wrapper = mount(); + const wrapper = render(); wrapper.unmount(); const actions = store.getActions(); @@ -250,25 +245,22 @@ describe('ManageCodesTabWrapper', () => { }, }); - const wrapper = mount(); - const instance = wrapper.find('ManageCodesTab').instance(); - const spyExpand = jest.spyOn(instance, 'handleCouponExpand'); - const spyCollapse = jest.spyOn(instance, 'handleCouponCollapse'); + const wrapper = render(); // expand - wrapper.find('Coupon').first().find('.metadata').simulate('click'); - expect(spyExpand).toBeCalledTimes(1); + fireEvent.click(wrapper.container.querySelector('.metadata')); + expect(screen.getByTestId('expand-less')).toBeTruthy(); // collapse - wrapper.find('Coupon').first().find('.metadata').simulate('click'); - expect(spyCollapse).toBeCalledTimes(1); + fireEvent.click(wrapper.container.querySelector('.metadata')); + expect(screen.getAllByTestId('expand-more')).toBeTruthy(); }); it('fetches coupons on refresh button click', () => { const store = mockStore({ ...initialState }); - const wrapper = mount(); + render(); store.clearActions(); - wrapper.find('[data-testid="refresh-data"]').hostNodes().simulate('click'); + fireEvent.click(screen.getByTestId('refresh-data')); expect(store.getActions().filter(action => action.type === COUPONS_REQUEST)).toHaveLength(1); }); @@ -296,12 +288,12 @@ describe('ManageCodesTabWrapper', () => { shouldShowAlert: false, }, ])('should render correctly', ({ subsidyRequestConfiguration, shouldShowAlert }) => { - const wrapper = mount(); + render(); if (shouldShowAlert) { - expect(wrapper.text().includes(BNR_NEW_FEATURE_ALERT_TEXT)).toBe(true); + expect(screen.getByText(BNR_NEW_FEATURE_ALERT_TEXT)).toBeTruthy(); } else { - expect(wrapper.text().includes(BNR_NEW_FEATURE_ALERT_TEXT)).toBe(false); + expect(screen.queryByText(BNR_NEW_FEATURE_ALERT_TEXT)).toBeFalsy(); } }); }); diff --git a/src/components/CodeManagement/tests/__snapshots__/ManageCodesTab.test.jsx.snap b/src/components/CodeManagement/tests/__snapshots__/ManageCodesTab.test.jsx.snap index b66b03dfe0..5457aa6d28 100644 --- a/src/components/CodeManagement/tests/__snapshots__/ManageCodesTab.test.jsx.snap +++ b/src/components/CodeManagement/tests/__snapshots__/ManageCodesTab.test.jsx.snap @@ -1,69 +1,62 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ManageCodesTabWrapper renders renders empty results correctly 1`] = ` -Array [ +

Overview

-
, +
-
, +
-
, -] +
+
`; exports[`ManageCodesTabWrapper renders renders error state correctly 1`] = ` -Array [ +

Overview

-
, +
-
, +
-
, -] +
+
`; exports[`ManageCodesTabWrapper renders renders loading state correctly 1`] = ` -Array [ +

Overview

-
, +
-
, +
Loading... Loading
-
, -] + + `; exports[`ManageCodesTabWrapper renders renders non-empty results correctly 1`] = ` -Array [ +

Overview

-
, +
-
, +
Valid From @@ -792,10 +731,10 @@ Array [
Valid To @@ -806,16 +745,16 @@ Array [
Assignments Remaining @@ -824,17 +763,17 @@ Array [
Enrollments Redeemed
2 of 10 (20%) @@ -843,28 +782,16 @@ Array [
- - - +
Open coupon details @@ -872,31 +799,29 @@ Array [
Valid From @@ -923,10 +848,10 @@ Array [
Valid To @@ -937,16 +862,16 @@ Array [
Assignments Remaining @@ -955,17 +880,17 @@ Array [
Enrollments Redeemed
2 of 10 (20%) @@ -974,28 +899,16 @@ Array [
- - - +
Open coupon details @@ -1003,55 +916,54 @@ Array [
-
, -] +
+
`; diff --git a/src/components/CodeSearchResults/CodeSearchResults.test.jsx b/src/components/CodeSearchResults/CodeSearchResults.test.jsx index a5b8e19c3e..704c755b2c 100644 --- a/src/components/CodeSearchResults/CodeSearchResults.test.jsx +++ b/src/components/CodeSearchResults/CodeSearchResults.test.jsx @@ -2,9 +2,8 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Provider } from 'react-redux'; -import renderer from 'react-test-renderer'; import { MemoryRouter } from 'react-router-dom'; -import { mount } from 'enzyme'; +import { fireEvent, render, screen } from '@testing-library/react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { IntlProvider } from '@edx/frontend-platform/i18n'; @@ -12,9 +11,9 @@ import { IntlProvider } from '@edx/frontend-platform/i18n'; import CodeSearchResults from './index'; import EcommerceApiService from '../../data/services/EcommerceApiService'; -import CodeReminderModal from '../../containers/CodeReminderModal'; jest.mock('../../data/services/EcommerceApiService'); +jest.mock('../../components/TemplateSourceFields'); const enterpriseId = 'test-enterprise'; const mockStore = configureMockStore([thunk]); @@ -93,16 +92,14 @@ describe('', () => { describe('basic rendering', () => { it('should render nothing visible when isOpen prop is false', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -117,16 +114,14 @@ describe('', () => { }, }, }); - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -173,16 +168,14 @@ describe('', () => { }, }, }); - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -210,16 +203,14 @@ describe('', () => { }, }, }); - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -238,16 +229,14 @@ describe('', () => { }, }, }); - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -262,16 +251,14 @@ describe('', () => { }, }, }); - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); }); @@ -303,7 +290,7 @@ describe('', () => { }, }, }); - const wrapper = mount(( + render(( ', () => { )); const mockPromiseResolve = () => Promise.resolve({ data: {} }); EcommerceApiService.fetchEmailTemplate.mockImplementation(mockPromiseResolve); - expect(wrapper.find('CodeSearchResults').state('isCodeReminderSuccessful')).toBeFalsy(); - wrapper.find('RemindButton').simulate('click'); - wrapper.find(CodeReminderModal).find('.code-remind-save-btn').first().simulate('click'); + expect(screen.queryByText('A reminder was successfully sent to test@test.com.')).toBeFalsy(); + fireEvent.click(screen.getByText('Remind')); + fireEvent.click(screen.getAllByText('Remind')[1]);; await flushPromises(); - wrapper.update(); - expect(wrapper.find('CodeSearchResults').state('isCodeReminderSuccessful')).toBeTruthy(); + expect(screen.queryByText('A reminder was successfully sent to test@test.com.')).toBeTruthy(); }); it('should handle remind button for saved template', async () => { @@ -355,7 +341,7 @@ describe('', () => { }, }, }); - const wrapper = mount(( + render(( ', () => { )); const mockPromiseResolve = () => Promise.resolve({ data: {} }); EcommerceApiService.fetchEmailTemplate.mockImplementation(mockPromiseResolve); - expect(wrapper.find('CodeSearchResults').state('isCodeReminderSuccessful')).toBeFalsy(); - wrapper.find('RemindButton').simulate('click'); - wrapper.find(CodeReminderModal).find('.code-remind-save-btn').first().simulate('click'); + expect(screen.queryByText('A reminder was successfully sent to test@test.com.')).toBeFalsy(); + fireEvent.click(screen.getByText('Remind')); + fireEvent.click(screen.getAllByText('Remind')[1]);; await flushPromises(); - wrapper.update(); - expect(wrapper.find('CodeSearchResults').state('isCodeReminderSuccessful')).toBeTruthy(); + expect(screen.queryByText('A reminder was successfully sent to test@test.com.')).toBeTruthy(); }); it('should handle revoke button', async () => { @@ -397,7 +382,7 @@ describe('', () => { }, }, }); - const wrapper = mount(( + render(( ', () => { isOpen /> )); - expect(wrapper.find('CodeSearchResults').state('isCodeRevokeSuccessful')).toBeFalsy(); - wrapper.find('RevokeButton').simulate('click'); - wrapper.find('CodeRevokeModal').find('.code-revoke-save-btn').first().simulate('click'); + + expect(screen.queryByText('Successfully revoked code(s)')).toBeFalsy(); + fireEvent.click(screen.getByText('Revoke')); + fireEvent.click(screen.getAllByText('Revoke')[1]); await flushPromises(); - wrapper.update(); - expect(wrapper.find('CodeSearchResults').state('isCodeRevokeSuccessful')).toBeTruthy(); + expect(screen.queryByText('Successfully revoked code(s)')).toBeTruthy(); }); }); @@ -430,7 +415,7 @@ describe('', () => { }, }, }); - const wrapper = mount(( + const wrapper = render(( ', () => { /> )); - wrapper.find('.close-search-results-btn').first().simulate('click'); + fireEvent.click(wrapper.container.querySelector('.close-search-results-btn')); expect(mockOnClose).toBeCalledTimes(1); }); }); diff --git a/src/components/CodeSearchResults/__snapshots__/CodeSearchResults.test.jsx.snap b/src/components/CodeSearchResults/__snapshots__/CodeSearchResults.test.jsx.snap index 61f894cf87..6d08b9d437 100644 --- a/src/components/CodeSearchResults/__snapshots__/CodeSearchResults.test.jsx.snap +++ b/src/components/CodeSearchResults/__snapshots__/CodeSearchResults.test.jsx.snap @@ -1,103 +1,94 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` basic rendering should render empty table data 1`] = ` -
+
-

- Search results for - - " - test@test.com - " - -

-
-
-
+
- - - - - - Close search results - + + + Close search results + +
-
-
- - - - -
@@ -107,111 +98,102 @@ exports[` basic rendering should render empty table data 1` `; exports[` basic rendering should render error 1`] = ` -
+
-

- Search results for - - " - test@test.com - " - -

-
-
-
+
- - - - - - Close search results - + + + Close search results + +
-
-
- - - - -
@@ -221,359 +203,250 @@ exports[` basic rendering should render error 1`] = ` `; exports[` basic rendering should render loading 1`] = ` -
+
-

- Search results for - - " - test@test.com - " - -

-
-
-
+
- - - - - - Close search results - -
-
-
-
- Loading... + + + Close search results + +
- - - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- - ‌ - -
- +
- ‌ - -
+ Loading... +
- ‌ + + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
+ + ‌ + +
-
-
+
@@ -581,450 +454,412 @@ exports[` basic rendering should render loading 1`] = ` `; exports[` basic rendering should render nothing visible when isOpen prop is false 1`] = ` -
+
+
+
`; exports[` basic rendering should render table data 1`] = ` -
+
-

- Search results for - - " - test@test.com - " - -

-
-
-
+
- - - - - - Close search results - + + + Close search results + +
-
-
- - - - - - - - - - - - - + Coupon Batch + + + + + + + + + - - - + + - - - - - - - - - - - - - - - + + + + - Y7XS3OGG7WB7KQ5R - - + + + + + + + - + Test Coupon Name + + + - - - - - - - - - - - + + + + - - - - - -
- Coupon Batch - - Code - - Redeemed - - Redemption Date - - Course Title - - Actions -
+ Code + + Redeemed + + Redemption Date + + Course Title + + Actions +
- Test Coupon Name - - Y7XS3OGG7WB7KQ5R - - + Test Coupon Name + + Y7XS3OGG7WB7KQ5R + - - - - has been redeemed + + + has been redeemed + - - - August 28, 2019 - - Test Course Title - - - -
- Test Coupon Name 2 - - CMX9N1LPGTUSL7DU - - - - - - - - - - - - -
- Test Coupon Name - + + August 28, 2019 + + Test Course Title + + - +
+ Test Coupon Name 2 + + CMX9N1LPGTUSL7DU + + - + + - + + - + + - +
+ Y7XS3OGG7WB7KQ5R + - - - - has been redeemed + + + has been redeemed + - - - August 30, 2019 - - Test Course Title - - - -
- Test Coupon Name - - FAG2LVLNHAKIXQ0Q - - - - - - - - - - + + August 30, 2019 + + Test Course Title + + - +
+ + Test Coupon Name + + + FAG2LVLNHAKIXQ0Q + + + - + + + - + + + - + + + - + + + + +
-
-
-
+
    - - -
  • -
+ + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    @@ -1034,301 +869,279 @@ exports[` basic rendering should render table data 1`] = ` `; exports[` basic rendering should render table data when searchQuery is a code 1`] = ` -
    +
    -

    - Search results for - - " - FAG2LVLNHAKIXQ0Q - " - -

    -
    -
    -
    +
    - - - - - - Close search results - + + + Close search results + +
    -
    -
    - - - - - - - - - - - - - - + Coupon Batch + + + + + + + + + + - - - - - - - + + + + - - -
    - Coupon Batch - - Code - - Redeemed - - Redemption Date - - Assigned To - - Course Title - - Actions -
    + Code + + Redeemed + + Redemption Date + + Assigned To + + Course Title + + Actions +
    - Test Coupon Name - - FAG2LVLNHAKIXQ0Q - - - - - - - - test@test.com - - - - - + FAG2LVLNHAKIXQ0Q + + - + + - + - Remind - - | - - Revoke - -
    + - + + + + | + + + + + +
    -
    -
    -
    + + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    diff --git a/src/components/EnrolledLearnersForInactiveCoursesTable/EnrolledLearnersForInactiveCoursesTable.test.jsx b/src/components/EnrolledLearnersForInactiveCoursesTable/EnrolledLearnersForInactiveCoursesTable.test.jsx index cb8eb07fd2..4cc6cac46f 100644 --- a/src/components/EnrolledLearnersForInactiveCoursesTable/EnrolledLearnersForInactiveCoursesTable.test.jsx +++ b/src/components/EnrolledLearnersForInactiveCoursesTable/EnrolledLearnersForInactiveCoursesTable.test.jsx @@ -1,10 +1,9 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; -import renderer from 'react-test-renderer'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { Provider } from 'react-redux'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import EnrolledLearnersForInactiveCoursesTable from '.'; @@ -114,20 +113,16 @@ const EnrolledLearnersForInactiveCoursesWrapper = props => ( describe('EnrolledLearnersForInactiveCoursesTable', () => { it('renders empty state correctly', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); it('renders enrolled learners for inactive courses table correctly', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -157,25 +152,25 @@ describe('EnrolledLearnersForInactiveCoursesTable', () => { ], ]; - const wrapper = mount(( + const wrapper = render(( )); // Verify that table has correct number of columns - expect(wrapper.find(`.${tableId} thead th`).length).toEqual(columnTitles.length); + expect(wrapper.container.querySelectorAll(`.${tableId} thead th`).length).toEqual(columnTitles.length); // Verify only expected columns are shown - wrapper.find(`.${tableId} thead th`).forEach((column, index) => { - expect(column.text()).toContain(columnTitles[index]); + wrapper.container.querySelectorAll(`.${tableId} thead th`).forEach((column, index) => { + expect(column.textContent).toContain(columnTitles[index]); }); // Verify that table has correct number of rows - expect(wrapper.find(`.${tableId} tbody tr`).length).toEqual(rowsData.length); + expect(wrapper.container.querySelectorAll(`.${tableId} tbody tr`).length).toEqual(rowsData.length); // Verify each row in table has correct data - wrapper.find(`.${tableId} tbody tr`).forEach((row, rowIndex) => { - row.find('td').forEach((cell, colIndex) => { - expect(cell.text()).toEqual(rowsData[rowIndex][colIndex]); + wrapper.container.querySelectorAll(`.${tableId} tbody tr`).forEach((row, rowIndex) => { + row.querySelectorAll('td').forEach((cell, colIndex) => { + expect(cell.textContent).toEqual(rowsData[rowIndex][colIndex]); }); }); }); diff --git a/src/components/EnrolledLearnersForInactiveCoursesTable/__snapshots__/EnrolledLearnersForInactiveCoursesTable.test.jsx.snap b/src/components/EnrolledLearnersForInactiveCoursesTable/__snapshots__/EnrolledLearnersForInactiveCoursesTable.test.jsx.snap index 415407b4ae..429099e235 100644 --- a/src/components/EnrolledLearnersForInactiveCoursesTable/__snapshots__/EnrolledLearnersForInactiveCoursesTable.test.jsx.snap +++ b/src/components/EnrolledLearnersForInactiveCoursesTable/__snapshots__/EnrolledLearnersForInactiveCoursesTable.test.jsx.snap @@ -1,366 +1,348 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EnrolledLearnersForInactiveCoursesTable renders empty state correctly 1`] = ` -
    - - - - - +
    `; exports[`EnrolledLearnersForInactiveCoursesTable renders enrolled learners for inactive courses table correctly 1`] = ` -
    +
    - - - - - + - + - + - - - - + + + + - - - - - - - + - - - - - - - - + + - 4 - - + + + + + - November 18, 2017 - - - -
    - - - - - Total Course Enrollment Count - + - - - - Total Completed Courses Count - + - - - - Last Activity Date - + -
    - - test_user_1@example.com - - - 2 - - 1 - - June 23, 2017 -
    - + test_user_1@example.com + + - test_user_2@example.com - - - 5 - - 5 - - January 15, 2018 -
    - + - test_user_3@example.com - - - 6 - + + June 23, 2017 +
    + + test_user_2@example.com + + + 5 + + 5 + + January 15, 2018 +
    + + + test_user_3@example.com + + + + 6 + + + 4 + + + November 18, 2017 + + + + +
    -
    -
    -
    +
      - - -
    • -
    + + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    diff --git a/src/components/EnterpriseApp/EnterpriseAppSkeleton.jsx b/src/components/EnterpriseApp/EnterpriseAppSkeleton.jsx index 540ab4fc5a..9818e3e421 100644 --- a/src/components/EnterpriseApp/EnterpriseAppSkeleton.jsx +++ b/src/components/EnterpriseApp/EnterpriseAppSkeleton.jsx @@ -3,7 +3,7 @@ import { Skeleton } from '@edx/paragon'; const EnterpriseAppSkeleton = () => ( <> -
    Loading...
    +
    Loading...
    diff --git a/src/components/EnterpriseApp/__snapshots__/EnterpriseAppSkeleton.test.jsx.snap b/src/components/EnterpriseApp/__snapshots__/EnterpriseAppSkeleton.test.jsx.snap index 43404309c3..1817432c9b 100644 --- a/src/components/EnterpriseApp/__snapshots__/EnterpriseAppSkeleton.test.jsx.snap +++ b/src/components/EnterpriseApp/__snapshots__/EnterpriseAppSkeleton.test.jsx.snap @@ -4,6 +4,7 @@ exports[`EnterpriseAppSkeleton renders a skeleton 1`] = ` Array [
    Loading...
    , diff --git a/src/components/EnterpriseList/EnterpriseList.test.jsx b/src/components/EnterpriseList/EnterpriseList.test.jsx index 4a0171e305..42a219c921 100644 --- a/src/components/EnterpriseList/EnterpriseList.test.jsx +++ b/src/components/EnterpriseList/EnterpriseList.test.jsx @@ -1,18 +1,16 @@ import React from 'react'; import { Provider } from 'react-redux'; import { MemoryRouter, mockNavigate } from 'react-router-dom'; -import { mount } from 'enzyme'; +import { fireEvent, render, screen } from '@testing-library/react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { IntlProvider } from '@edx/frontend-platform/i18n'; import EnterpriseList, { TITLE } from './index'; import mockEnterpriseList from './EnterpriseList.mocks'; -import SearchBar from '../SearchBar'; -import TableContainer from '../../containers/TableContainer'; -import LoadingMessage from '../LoadingMessage'; import LmsApiServices from '../../data/services/LmsApiService'; +import { renderWithRouter } from '../test/testUtils'; const mockedNavigate = jest.fn(); jest.mock('react-router-dom', () => { @@ -76,7 +74,7 @@ describe('', () => { describe('renders correctly', () => { it('call clearPortalConfiguration prop', () => { const mockClearPortalConfiguration = jest.fn(); - mount( + render( , @@ -85,7 +83,7 @@ describe('', () => { }); it('with enterprises data', () => { - wrapper = mount( + wrapper = render( ', () => { }} />, ); - const table = wrapper.find(TableContainer); - expect(table.length).toEqual(1); + expect(screen.getAllByTestId('table-container-wrapper')).toHaveLength(1); }); it('with empty enterprises data', () => { - wrapper = mount( + wrapper = render( ', () => { }} />, ); - expect(wrapper.find('h1').text()).toEqual(TITLE); - expect(wrapper.find(TableContainer)).toHaveLength(1); - expect(wrapper.find(SearchBar)).toHaveLength(1); + expect(wrapper.container.querySelector('h1').textContent).toEqual(TITLE); + expect(screen.getAllByTestId('table-container-wrapper')).toHaveLength(1); + expect(screen.getAllByTestId('search-bar-wrapper')).toHaveLength(1); }); it('with search query and empty enterprises data', () => { - wrapper = mount( + wrapper = render( ', () => { }} />, ); - expect(wrapper.find(SearchBar).props().value).toEqual('enterprise name'); + expect(screen.getByDisplayValue('enterprise name')).toBeTruthy(); }); it('with error state', () => { const err = 'Network Error'; - wrapper = mount( + wrapper = render( , ); - expect(wrapper.text()).toContain(err); + expect(screen.getByText(err)).toBeTruthy(); }); it('with loading state', () => { - wrapper = mount( + wrapper = render( , ); - expect(wrapper.find(LoadingMessage)).toHaveLength(1); + expect(screen.getAllByText('Loading...')).toHaveLength(1); }); it('redirects when there is only one enterprise', () => { @@ -166,16 +163,14 @@ describe('', () => { start: 0, }; - wrapper = mount(( - - - {}} - clearPortalConfiguration={() => {}} - /> - - + renderWithRouter(( + + {}} + clearPortalConfiguration={() => {}} + /> + )); expect(mockNavigate).toHaveBeenCalledWith('/enterprise-99/admin/learners'); }); @@ -183,14 +178,14 @@ describe('', () => { describe('enterprise list search', () => { const submitSearch = (searchQuery) => { - wrapper.find('SearchBar').find('input[type="text"]').simulate('change', { target: { value: searchQuery } }); - expect(wrapper.find('SearchBar').find('input[type="text"]').prop('value')).toEqual(searchQuery); - wrapper.find('SearchBar').find('form').simulate('submit'); + fireEvent.change(wrapper.container.querySelector('input[type="text"]'), { target: { value: searchQuery } }); + expect(wrapper.container.querySelector('input[type="text"]').value).toEqual(searchQuery); + fireEvent.submit(wrapper.container.querySelector('form')); }; it('fetchEnterpriseList called with no search property initially', () => { jest.spyOn(LmsApiServices, 'fetchEnterpriseList'); - wrapper = mount( + wrapper = render( ', () => { }); it('search querystring changes onSearch', () => { - wrapper = mount(( + wrapper = render(( @@ -212,13 +207,13 @@ describe('', () => { }); it('search querystring clears onClear', () => { - wrapper = mount(( + wrapper = render(( )); submitSearch('Enterprise 1'); - wrapper.find('SearchBar').find('button[type="reset"]').simulate('reset'); + fireEvent.reset(wrapper.container.querySelector('button[type="reset"]')); const queryParams = new URLSearchParams(window.location.search); expect(queryParams.has('search')).toBeFalsy(); }); diff --git a/src/components/EnterpriseList/index.jsx b/src/components/EnterpriseList/index.jsx index b275bf8b18..25dee7ed90 100644 --- a/src/components/EnterpriseList/index.jsx +++ b/src/components/EnterpriseList/index.jsx @@ -125,7 +125,7 @@ class EnterpriseList extends React.Component {

    {TITLE}

    -
    +
    updateUrl(this.props.navigate, this.props.location.pathname, { @@ -138,7 +138,7 @@ class EnterpriseList extends React.Component {
    -
    +
    {this.shouldRenderRedirectToEnterpriseAdminPage() && this.renderRedirectToEnterpriseAdminPage()} ( @@ -34,16 +33,16 @@ describe('', () => { enterpriseName: 'Test Enterprise', }; - const wrapper = mount(); - const logo = wrapper.find(Img); - expect(logo.props().src).toEqual(props.enterpriseLogo); - expect(logo.props().alt).toEqual(`${props.enterpriseName} logo`); + render(); + const logo = screen.getByTestId('img'); + expect(logo.src).toEqual(props.enterpriseLogo); + expect(logo.alt).toEqual(`${props.enterpriseName} logo`); }); it('renders edX logo correctly', () => { - const wrapper = mount(); - const logo = wrapper.find(Img); - expect(logo.props().src).toEqual(configuration.LOGO_URL); - expect(logo.props().alt).toEqual('edX logo'); + render(); + const logo = screen.getByTestId('img'); + expect(logo.src).toEqual(configuration.LOGO_URL); + expect(logo.alt).toEqual('edX logo'); }); }); diff --git a/src/components/Img/index.jsx b/src/components/Img/index.jsx index 8d4b1c3f53..df39c6fdaf 100644 --- a/src/components/Img/index.jsx +++ b/src/components/Img/index.jsx @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import './Img.scss'; const Img = (props) => ( - {props.alt} + {props.alt} ); Img.propTypes = { diff --git a/src/components/LearnerActivityTable/LearnerActivityTable.test.jsx b/src/components/LearnerActivityTable/LearnerActivityTable.test.jsx index 8d03a190c3..c2f1bcd1e6 100644 --- a/src/components/LearnerActivityTable/LearnerActivityTable.test.jsx +++ b/src/components/LearnerActivityTable/LearnerActivityTable.test.jsx @@ -1,10 +1,9 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; -import renderer from 'react-test-renderer'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { Provider } from 'react-redux'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import LearnerActivityTable from '.'; @@ -102,62 +101,54 @@ const LearnerActivityTableWrapper = props => ( ); const verifyLearnerActivityTableRendered = (tableId, activity, columnTitles, rowsData) => { - const wrapper = mount(( + const wrapper = render(( )); // Verify that table has correct number of columns - expect(wrapper.find(`.${tableId} thead th`).length).toEqual(columnTitles.length); + expect(wrapper.container.querySelectorAll(`.${tableId} thead th`).length).toEqual(columnTitles.length); // Verify only expected columns are shown - wrapper.find(`.${tableId} thead th`).forEach((column, index) => { - expect(column.text()).toContain(columnTitles[index]); + wrapper.container.querySelectorAll(`.${tableId} thead th`).forEach((column, index) => { + expect(column.textContent).toContain(columnTitles[index]); }); // Verify that table has correct number of rows - expect(wrapper.find(`.${tableId} tbody tr`).length).toEqual(2); + expect(wrapper.container.querySelectorAll(`.${tableId} tbody tr`).length).toEqual(2); // Verify each row in table has correct data - wrapper.find(`.${tableId} tbody tr`).forEach((row, rowIndex) => { - row.find('td').forEach((cell, colIndex) => { - expect(cell.text()).toEqual(rowsData[rowIndex][colIndex]); + wrapper.container.querySelectorAll(`.${tableId} tbody tr`).forEach((row, rowIndex) => { + row.querySelectorAll('td').forEach((cell, colIndex) => { + expect(cell.textContent).toEqual(rowsData[rowIndex][colIndex]); }); }); }; describe('LearnerActivityTable', () => { it('renders empty state correctly', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); it('renders active learners table correctly', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); it('renders inactive past week learners table correctly', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); it('renders inactive past month learners table correctly', () => { - const tree = renderer - .create(( + const { container: tree } = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); diff --git a/src/components/LearnerActivityTable/__snapshots__/LearnerActivityTable.test.jsx.snap b/src/components/LearnerActivityTable/__snapshots__/LearnerActivityTable.test.jsx.snap index 045d0d6f0e..b161db0cb1 100644 --- a/src/components/LearnerActivityTable/__snapshots__/LearnerActivityTable.test.jsx.snap +++ b/src/components/LearnerActivityTable/__snapshots__/LearnerActivityTable.test.jsx.snap @@ -1,1424 +1,1326 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`LearnerActivityTable renders active learners table correctly 1`] = ` -
    +
    - - - - - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - -
    - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + -
    - - awesome.me@example.com - - - Dive into ReactJS - - $200 - - October 21, 2017 - - May 13, 2018 - - September 23, 2018 - - 66% - - Failed - - September 22, 2018 -
    - - new@example.com - - - Redux with ReactJS - - $200 - - October 21, 2017 - - May 13, 2018 - - September 22, 2018 - - 80% - - Passed - - September 25, 2018 -
    + + + awesome.me@example.com + + + + Dive into ReactJS + + + $200 + + + October 21, 2017 + + + May 13, 2018 + + + September 23, 2018 + + + 66% + + + Failed + + + September 22, 2018 + + + + + + new@example.com + + + + Redux with ReactJS + + + $200 + + + October 21, 2017 + + + May 13, 2018 + + + September 22, 2018 + + + 80% + + + Passed + + + September 25, 2018 + + + + +
    -
    -
    -
    +
      - - -
    • -
    + + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    `; exports[`LearnerActivityTable renders empty state correctly 1`] = ` -
    - - - - - +
    `; exports[`LearnerActivityTable renders inactive past month learners table correctly 1`] = ` -
    +
    - - - - - + - + - + - + - + - + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - -
    - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + -
    - - awesome.me@example.com - - - Dive into ReactJS - - $200 - - October 21, 2017 - - May 13, 2018 - - 66% - - Failed - - September 22, 2018 -
    - - new@example.com - - - Redux with ReactJS - - $200 - - October 21, 2017 - - May 13, 2018 - - 80% - - Passed - - September 25, 2018 -
    + + + awesome.me@example.com + + + + Dive into ReactJS + + + $200 + + + October 21, 2017 + + + May 13, 2018 + + + 66% + + + Failed + + + September 22, 2018 + + + + + + new@example.com + + + + Redux with ReactJS + + + $200 + + + October 21, 2017 + + + May 13, 2018 + + + 80% + + + Passed + + + September 25, 2018 + + + + +
    -
    -
    -
    +
      - - -
    • -
    + + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    `; exports[`LearnerActivityTable renders inactive past week learners table correctly 1`] = ` -
    +
    - - - - - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + - - - - - - - - - - -
    - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + -
    - - awesome.me@example.com - - - Dive into ReactJS - - $200 - - October 21, 2017 - - May 13, 2018 - - 66% - - Failed - - September 22, 2018 -
    - - new@example.com - - - Redux with ReactJS - - $200 - - October 21, 2017 - - May 13, 2018 - - 80% - - Passed - - September 25, 2018 -
    + + + awesome.me@example.com + + + + Dive into ReactJS + + + $200 + + + October 21, 2017 + + + May 13, 2018 + + + 66% + + + Failed + + + September 22, 2018 + + + + + + new@example.com + + + + Redux with ReactJS + + + $200 + + + October 21, 2017 + + + May 13, 2018 + + + 80% + + + Passed + + + September 25, 2018 + + + + +
    -
    -
    -
    +
      - - -
    • -
    + + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    diff --git a/src/components/NumberCard/__snapshots__/NumberCard.test.jsx.snap b/src/components/NumberCard/__snapshots__/NumberCard.test.jsx.snap index 7586dfc531..c16c4fb956 100644 --- a/src/components/NumberCard/__snapshots__/NumberCard.test.jsx.snap +++ b/src/components/NumberCard/__snapshots__/NumberCard.test.jsx.snap @@ -1,182 +1,179 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` renders correctly with detail actions 1`] = ` -
    +
    -

    - - 10 - - - + 10 + + - - - -

    -

    - This describes the data! -

    + + + +

    + This describes the data! +

    +
    -
    -
    - -
    - + - + + Action 2 + +
    + + `; exports[` renders correctly without detail actions 1`] = ` -
    +
    -

    - - 10 - - - + 10 + + - - - -

    -

    - This describes the data! -

    + + + +

    + This describes the data! +

    +
    diff --git a/src/components/PastWeekPassedLearnersTable/PastWeekPassedLearnersTable.test.jsx b/src/components/PastWeekPassedLearnersTable/PastWeekPassedLearnersTable.test.jsx index a4590b162f..0fc3653580 100644 --- a/src/components/PastWeekPassedLearnersTable/PastWeekPassedLearnersTable.test.jsx +++ b/src/components/PastWeekPassedLearnersTable/PastWeekPassedLearnersTable.test.jsx @@ -1,10 +1,9 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; -import renderer from 'react-test-renderer'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { Provider } from 'react-redux'; -import { mount } from 'enzyme'; +import { render } from '@testing-library/react'; import PastWeekPassedLearnersTable from '.'; @@ -62,11 +61,9 @@ describe('PastWeekPassedLearnersTable', () => { let wrapper; it('renders table correctly', () => { - const tree = renderer - .create(( + const {container:tree} = render( - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); @@ -86,25 +83,25 @@ describe('PastWeekPassedLearnersTable', () => { ], ]; - wrapper = mount(( + wrapper = render(( )); // Verify that table has correct number of columns - expect(wrapper.find(`.${tableId} thead th`).length).toEqual(3); + expect(wrapper.container.querySelectorAll(`.${tableId} thead th`).length).toEqual(3); // Verify only expected columns are shown - wrapper.find(`.${tableId} thead th`).forEach((column, index) => { - expect(column.text()).toContain(columnTitles[index]); + wrapper.container.querySelectorAll(`.${tableId} thead th`).forEach((column, index) => { + expect(column.textContent).toContain(columnTitles[index]); }); // Verify that table has correct number of rows - expect(wrapper.find(`.${tableId} tbody tr`).length).toEqual(2); + expect(wrapper.container.querySelectorAll(`.${tableId} tbody tr`).length).toEqual(2); // Verify each row in table has correct data - wrapper.find(`.${tableId} tbody tr`).forEach((row, rowIndex) => { - row.find('td').forEach((cell, colIndex) => { - expect(cell.text()).toEqual(rowsData[rowIndex][colIndex]); + wrapper.container.querySelectorAll(`.${tableId} tbody tr`).forEach((row, rowIndex) => { + row.querySelectorAll('td').forEach((cell, colIndex) => { + expect(cell.textContent).toEqual(rowsData[rowIndex][colIndex]); }); }); }); diff --git a/src/components/PastWeekPassedLearnersTable/__snapshots__/PastWeekPassedLearnersTable.test.jsx.snap b/src/components/PastWeekPassedLearnersTable/__snapshots__/PastWeekPassedLearnersTable.test.jsx.snap index 1b48824ca2..a329e25f36 100644 --- a/src/components/PastWeekPassedLearnersTable/__snapshots__/PastWeekPassedLearnersTable.test.jsx.snap +++ b/src/components/PastWeekPassedLearnersTable/__snapshots__/PastWeekPassedLearnersTable.test.jsx.snap @@ -1,260 +1,248 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`PastWeekPassedLearnersTable renders table correctly 1`] = ` -
    +
    - - - - - + - + - - - - + + + + - - - - - - + - - + + - September 22, 2018 - - - -
    - - - - - Course Title - + - - - - Passed Date - + -
    - - awesome.me@example.com - - - Dive into ReactJS - - September 23, 2018 -
    - + awesome.me@example.com + + - new@example.com - - - Redux with ReactJS - + + September 23, 2018 +
    + + + new@example.com + + + + Redux with ReactJS + + + September 22, 2018 + + + + +
    -
    -
    -
    + + +
  • -
    - Next - - +
    + Next + - - - -
    - -
  • - - + + +
    + + + + +
    diff --git a/src/components/ReportingConfig/ReportingConfigForm.jsx b/src/components/ReportingConfig/ReportingConfigForm.jsx index 09dadbe4e5..27456b5cda 100644 --- a/src/components/ReportingConfig/ReportingConfigForm.jsx +++ b/src/components/ReportingConfig/ReportingConfigForm.jsx @@ -187,6 +187,7 @@ class ReportingConfigForm extends React.Component { const selectedDataTypesOption = config ? [{ label: config.dataType, value: config.dataType, hidden: true }] : []; return ( { e.preventDefault(); const formData = new FormData(e.target); diff --git a/src/components/ReportingConfig/ReportingConfigForm.test.jsx b/src/components/ReportingConfig/ReportingConfigForm.test.jsx index 0263df7fa0..2f0bda40e6 100644 --- a/src/components/ReportingConfig/ReportingConfigForm.test.jsx +++ b/src/components/ReportingConfig/ReportingConfigForm.test.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { mount } from 'enzyme'; -import { act } from '@testing-library/react'; +import { render, screen, act, fireEvent } from '@testing-library/react'; import ReportingConfigForm from './ReportingConfigForm'; const defaultConfig = { @@ -416,8 +416,8 @@ describe('', () => { ); expect('encryptedPassword' in invalidFields).toBe(false); }); - it('Submit enterprise uuid upon report config creation', async () => { - const wrapper = mount(( + it.only('Submit enterprise uuid upon report config creation', async () => { + render(( ', () => { Object.entries(defaultConfig).forEach(([key, value]) => { formData.append(key, value); }); - wrapper.instance().handleSubmit(formData, null); + fireEvent.submit(screen.getByTestId('reporting-config-form'), formData) + // wrapper.instance().handleSubmit(formData, null); await act(() => flushPromises()); expect(createConfig.mock.calls[0][0].get('enterprise_customer_id')).toEqual(enterpriseCustomerUuid); }); diff --git a/src/components/SearchBar/SearchBar.test.jsx b/src/components/SearchBar/SearchBar.test.jsx index f32caf4c28..222e1a353f 100644 --- a/src/components/SearchBar/SearchBar.test.jsx +++ b/src/components/SearchBar/SearchBar.test.jsx @@ -1,6 +1,5 @@ import React from 'react'; -import renderer from 'react-test-renderer'; -import { mount } from 'enzyme'; +import { fireEvent, render } from '@testing-library/react'; import SearchBar from './index'; @@ -8,25 +7,23 @@ describe('', () => { let wrapper; it('renders correctly', () => { - const tree = renderer - .create(( + const {container:tree} = render( {}} /> - )) - .toJSON(); + ); expect(tree).toMatchSnapshot(); }); it('calls onSearch callback handler', () => { const mockOnSearchCallback = jest.fn(); - wrapper = mount(( + wrapper = render(( )); - wrapper.find('input[type="text"]').simulate('change', { target: { value: 'foobar' } }); - wrapper.find('form').simulate('submit'); + fireEvent.change(wrapper.container.querySelector('input[type="text"]'), { target: { value: 'foobar' } }); + fireEvent.submit(wrapper.container.querySelector('form')); expect(mockOnSearchCallback).toHaveBeenCalledTimes(1); }); }); diff --git a/src/components/SearchBar/__snapshots__/SearchBar.test.jsx.snap b/src/components/SearchBar/__snapshots__/SearchBar.test.jsx.snap index d93f96f39b..ff2b827d5c 100644 --- a/src/components/SearchBar/__snapshots__/SearchBar.test.jsx.snap +++ b/src/components/SearchBar/__snapshots__/SearchBar.test.jsx.snap @@ -1,67 +1,62 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` renders correctly 1`] = ` -
    - +
    - - - - + + + + + submit search + + + +
    `; diff --git a/src/components/SidebarToggle/index.jsx b/src/components/SidebarToggle/index.jsx index c42d8f278c..75f23e22bb 100644 --- a/src/components/SidebarToggle/index.jsx +++ b/src/components/SidebarToggle/index.jsx @@ -22,7 +22,7 @@ const SidebarToggle = (props) => { aria-controls="sidebar" iconBefore={Icon} > - + {isExpandedByToggle ? 'close menu' : 'open menu'} diff --git a/src/components/UserActivationPage/UserActivationPage.test.jsx b/src/components/UserActivationPage/UserActivationPage.test.jsx index 849b472541..6b84c8d751 100644 --- a/src/components/UserActivationPage/UserActivationPage.test.jsx +++ b/src/components/UserActivationPage/UserActivationPage.test.jsx @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; import { createMemoryHistory } from 'history'; import { MemoryRouter as Router, Routes, Route, mockNavigate, @@ -67,10 +67,10 @@ describe('', () => { // Note: this test does not assert that the redirect to the proxy login works since // JSdom does not implement global.location. Due to this, JSdom outputs a "Not // implemented: navigation" warning for this test that can safely be ignored. - const wrapper = mount(); + render(); // verify that the loading skeleton appears during redirect - expect(wrapper.contains(EnterpriseAppSkeleton)).toBeTruthy(); + expect(screen.getByTestId('enterprise-app-skeleton')).toBeTruthy(); }); it('redirects to /admin/register when user is authenticated but has no JWT roles', () => { @@ -82,7 +82,7 @@ describe('', () => { initialEntries: [`/${TEST_ENTERPRISE_SLUG}/admin/register/activate`], }); - mount(); + render(); const expectedRedirectRoute = `/${TEST_ENTERPRISE_SLUG}/admin/register`; expect(mockNavigate).toHaveBeenCalledWith(expectedRedirectRoute); }); @@ -93,8 +93,8 @@ describe('', () => { roles: ['enterprise_admin:*'], }); - const wrapper = mount(); - expect(wrapper.find(EnterpriseAppSkeleton).exists()).toBeTruthy(); + render(); + expect(screen.getByTestId('enterprise-app-skeleton')).toBeTruthy(); }); it('displays an alert when user with unverified email is authenticated and has "enterprise_admin" JWT role', () => { @@ -104,8 +104,8 @@ describe('', () => { isActive: false, }); - const wrapper = mount(); - expect(wrapper.find('Alert').exists()).toBeTruthy(); + render(); + expect(screen.getByRole('alert')).toBeTruthy(); }); it('redirects to /admin/learners route when user with verified email is authenticated and has "enterprise_admin" JWT role', () => { @@ -119,7 +119,7 @@ describe('', () => { initialEntries: [`/${TEST_ENTERPRISE_SLUG}/admin/register/activate`], }); - mount(); + render(); const expectedRedirectRoute = `/${TEST_ENTERPRISE_SLUG}/admin/learners`; expect(mockNavigate).toHaveBeenCalledWith(expectedRedirectRoute); }); diff --git a/src/containers/DownloadCsvButton/DownloadCsvButton.test.jsx b/src/containers/DownloadCsvButton/DownloadCsvButton.test.jsx index 24597a0526..5e09761070 100644 --- a/src/containers/DownloadCsvButton/DownloadCsvButton.test.jsx +++ b/src/containers/DownloadCsvButton/DownloadCsvButton.test.jsx @@ -1,7 +1,7 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; -import { mount } from 'enzyme'; +import { fireEvent, render, screen } from '@testing-library/react'; import { MemoryRouter } from 'react-router-dom'; import { Provider } from 'react-redux'; import { IntlProvider } from '@edx/frontend-platform/i18n'; @@ -24,26 +24,25 @@ const store = mockStore({ }); describe('', () => { - let wrapper; let dispatchSpy; beforeEach(() => { dispatchSpy = jest.spyOn(store, 'dispatch'); - wrapper = mount(( + render(( - + ( + EnterpriseDataApiService.fetchCourseEnrollments(enterpriseId, {}, { csv: true }) + )} /> - )).find('DownloadCsvButton'); + )); }); it('fetchCsv dispatch action', () => { - wrapper.props().fetchCsv(() => ( - EnterpriseDataApiService.fetchCourseEnrollments(enterpriseId, {}, { csv: true }) - )); + fireEvent.click(screen.getByText('Download full report (CSV)')); expect(dispatchSpy).toHaveBeenCalled(); }); }); diff --git a/src/containers/EnterpriseApp/EnterpriseApp.test.jsx b/src/containers/EnterpriseApp/EnterpriseApp.test.jsx index 9e42cde834..dbb171eddd 100644 --- a/src/containers/EnterpriseApp/EnterpriseApp.test.jsx +++ b/src/containers/EnterpriseApp/EnterpriseApp.test.jsx @@ -19,6 +19,7 @@ import { features } from '../../config'; import NotFoundPage from '../../components/NotFoundPage'; import { EnterpriseSubsidiesContext } from '../../components/EnterpriseSubsidiesContext'; import { EnterpriseAppContext } from '../../components/EnterpriseApp/EnterpriseAppContextProvider'; +import { render } from '@testing-library/react'; const defaultEnterpriseAppContextValue = { enterpriseCuration: { @@ -214,7 +215,7 @@ describe('', () => { }); }); - it('toggles sidebar toggle on componentWillUnmount', () => { + it.only('toggles sidebar toggle on componentWillUnmount', () => { const store = mockStore({ ...initialState, sidebar: { @@ -223,7 +224,7 @@ describe('', () => { }, }); - const wrapper = mount(( + const wrapper = render(( diff --git a/src/containers/Footer/__snapshots__/Footer.test.jsx.snap b/src/containers/Footer/__snapshots__/Footer.test.jsx.snap index 1a12f124e2..574715488c 100644 --- a/src/containers/Footer/__snapshots__/Footer.test.jsx.snap +++ b/src/containers/Footer/__snapshots__/Footer.test.jsx.snap @@ -17,6 +17,7 @@ exports[`