diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fad6a6b61..dd5398524 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,12 +13,11 @@ jobs: - i18n_extract - lint - test - node: [18, 20] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node }} + node-version-file: '.nvmrc' - run: make requirements - run: make test NPM_TESTS=build - run: make test NPM_TESTS=${{ matrix.npm-test }} diff --git a/package-lock.json b/package-lock.json index 453ae34a2..09173cb40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,9 +21,9 @@ "@openedx/frontend-plugin-framework": "^1.2.2", "@openedx/frontend-slot-footer": "^1.0.2", "@openedx/paragon": "22.9.0", - "@tensorflow-models/blazeface": "0.0.7", - "@tensorflow/tfjs-converter": "3.21.0", - "@tensorflow/tfjs-core": "3.21.0", + "@tensorflow-models/blazeface": "0.1.0", + "@tensorflow/tfjs-converter": "4.22.0", + "@tensorflow/tfjs-core": "4.22.0", "bowser": "2.11.0", "classnames": "2.5.1", "core-js": "3.38.1", @@ -61,17 +61,17 @@ "redux-thunk": "2.4.2", "regenerator-runtime": "0.14.1", "reselect": "^5.1.1", - "universal-cookie": "4.0.4" + "universal-cookie": "7.2.2" }, "devDependencies": { "@edx/browserslist-config": "1.2.0", - "@edx/reactifex": "1.1.0", + "@edx/reactifex": "2.2.0", "@openedx/frontend-build": "14.1.5", - "@testing-library/jest-dom": "6.6.2", + "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "12.1.5", "react-test-renderer": "17.0.2", "reactifex": "1.1.1", - "redux-mock-store": "1.5.4" + "redux-mock-store": "1.5.5" } }, "node_modules/@adobe/css-tools": { @@ -2010,9 +2010,10 @@ } }, "node_modules/@edx/frontend-component-header": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-5.6.0.tgz", - "integrity": "sha512-ITLLrej6BbWVc/0baMkKg/ACTvUGSR188Rn/BC2Y82Tdu8gRsZB6+0GUsDX/6FJjeIazLXdUusKlfwVU90sXLA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-5.7.0.tgz", + "integrity": "sha512-a7ErsU0m6yaU8VGLN4JYC1Y43W5L/zSCZSmpDZw534LiPK43k4eyU8u5Ep1yxp+8sOvB49qED4huIq+1oVDJsA==", + "license": "AGPL-3.0", "dependencies": { "@fortawesome/fontawesome-svg-core": "6.6.0", "@fortawesome/free-brands-svg-icons": "6.6.0", @@ -2032,7 +2033,8 @@ "@openedx/paragon": ">= 21.5.7 < 23.0.0", "prop-types": "^15.5.10", "react": "^16.9.0 || ^17.0.0", - "react-dom": "^16.9.0 || ^17.0.0" + "react-dom": "^16.9.0 || ^17.0.0", + "react-router-dom": "^6.14.2" } }, "node_modules/@edx/frontend-platform": { @@ -2087,12 +2089,31 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/@edx/frontend-platform/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@edx/frontend-platform/node_modules/form-urlencoded": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.1.4.tgz", "integrity": "sha512-R7Vytos0gMYuPQTMwnNzvK9PBItNV+Qkm/pvghEZI3j2kMrzZmJlczAgHFmt12VV+IRYQXgTlSGP1PKAsMCIUA==", "license": "MIT" }, + "node_modules/@edx/frontend-platform/node_modules/universal-cookie": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz", + "integrity": "sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.3.3", + "cookie": "^0.4.0" + } + }, "node_modules/@edx/new-relic-source-map-webpack-plugin": { "version": "2.1.0", "license": "AGPL-3.0", @@ -2110,7 +2131,9 @@ } }, "node_modules/@edx/reactifex": { - "version": "1.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@edx/reactifex/-/reactifex-2.2.0.tgz", + "integrity": "sha512-vyGDtx3BwCr6Gjbm4y6gJ8Bzc2TOSNBlBa2hMerz59HoXaot14MihxxiDU+JDNybGLLcKDBiK511bOi/77i1lw==", "dev": true, "license": "MIT", "dependencies": { @@ -2123,6 +2146,8 @@ }, "node_modules/@edx/reactifex/node_modules/axios": { "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "license": "MIT", "dependencies": { @@ -3309,9 +3334,9 @@ } }, "node_modules/@openedx/frontend-plugin-framework": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@openedx/frontend-plugin-framework/-/frontend-plugin-framework-1.3.0.tgz", - "integrity": "sha512-qLtX/4HIuWXiIhBdtBuL6mPVbV2un0rsFYx3I5+3tIUf7+T7WRq81a6JHU5QGyAmZy9dfiv7QwbqwiEQOVXVuQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@openedx/frontend-plugin-framework/-/frontend-plugin-framework-1.4.0.tgz", + "integrity": "sha512-cwwjvGjYnzQdyhw2PuMYfaZoZGclXTzYfR3NjZ8bSLkj0f7lRB64nMy6WUmBjTB6hjaD4vxMs0zahrU4IM7EWQ==", "license": "AGPL-3.0", "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", @@ -3836,29 +3861,31 @@ } }, "node_modules/@tensorflow-models/blazeface": { - "version": "0.0.7", - "license": "Apache-2.0", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow-models/blazeface/-/blazeface-0.1.0.tgz", + "integrity": "sha512-Qc5Wii8/OE5beC7XfehkhF9SEFLaPbVKnxxalV0T9JXsUynXqvLommc9Eko7b8zXKy4SJ1BtVlcX2cmCzQrn9A==", "peerDependencies": { - "@tensorflow/tfjs-converter": "^3.1.0", - "@tensorflow/tfjs-core": "^3.1.0" + "@tensorflow/tfjs-converter": "^4.10.0", + "@tensorflow/tfjs-core": "^4.10.0" } }, "node_modules/@tensorflow/tfjs-converter": { - "version": "3.21.0", - "license": "Apache-2.0", + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz", + "integrity": "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ==", "peerDependencies": { - "@tensorflow/tfjs-core": "3.21.0" + "@tensorflow/tfjs-core": "4.22.0" } }, "node_modules/@tensorflow/tfjs-core": { - "version": "3.21.0", - "license": "Apache-2.0", + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.22.0.tgz", + "integrity": "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A==", "dependencies": { "@types/long": "^4.0.1", - "@types/offscreencanvas": "~2019.3.0", + "@types/offscreencanvas": "~2019.7.0", "@types/seedrandom": "^2.4.28", - "@types/webgl-ext": "0.0.30", - "@webgpu/types": "0.1.16", + "@webgpu/types": "0.1.38", "long": "4.0.0", "node-fetch": "~2.6.1", "seedrandom": "^3.0.5" @@ -3869,7 +3896,8 @@ }, "node_modules/@tensorflow/tfjs-core/node_modules/long": { "version": "4.0.0", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "node_modules/@testing-library/dom": { "version": "8.20.1", @@ -3903,9 +3931,9 @@ "license": "MIT" }, "node_modules/@testing-library/jest-dom": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.2.tgz", - "integrity": "sha512-P6GJD4yqc9jZLbe98j/EkyQDTPgqftohZF5FBkHY5BUERZmcf4HeO2k0XaefEg329ux2p21i1A1DmyQ1kKw2Jw==", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", + "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", "dev": true, "license": "MIT", "dependencies": { @@ -4204,7 +4232,8 @@ }, "node_modules/@types/long": { "version": "4.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/mime": { "version": "1.3.5", @@ -4229,8 +4258,9 @@ } }, "node_modules/@types/offscreencanvas": { - "version": "2019.3.0", - "license": "MIT" + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==" }, "node_modules/@types/parse-json": { "version": "4.0.2", @@ -4296,7 +4326,8 @@ }, "node_modules/@types/seedrandom": { "version": "2.4.34", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz", + "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==" }, "node_modules/@types/semver": { "version": "7.5.8", @@ -4345,10 +4376,6 @@ "version": "3.0.3", "license": "MIT" }, - "node_modules/@types/webgl-ext": { - "version": "0.0.30", - "license": "MIT" - }, "node_modules/@types/ws": { "version": "8.5.12", "license": "MIT", @@ -4696,8 +4723,9 @@ } }, "node_modules/@webgpu/types": { - "version": "0.1.16", - "license": "BSD-3-Clause" + "version": "0.1.38", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz", + "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==" }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", @@ -11643,7 +11671,8 @@ }, "node_modules/node-fetch": { "version": "2.6.13", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz", + "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -11661,15 +11690,18 @@ }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13831,11 +13863,16 @@ } }, "node_modules/redux-mock-store": { - "version": "1.5.4", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.5.tgz", + "integrity": "sha512-YxX+ofKUTQkZE4HbhYG4kKGr7oCTJfB0GLy7bSeqx86GLpGirrbUWstMnqXkqHNaQpcnbMGbof2dYs5KsPE6Zg==", "dev": true, "license": "MIT", "dependencies": { "lodash.isplainobject": "^4.0.6" + }, + "peerDependencies": { + "redux": "*" } }, "node_modules/redux-saga": { @@ -14291,7 +14328,8 @@ }, "node_modules/seedrandom": { "version": "3.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" }, "node_modules/select-hose": { "version": "2.0.0", @@ -15743,15 +15781,25 @@ } }, "node_modules/universal-cookie": { - "version": "4.0.4", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-7.2.2.tgz", + "integrity": "sha512-fMiOcS3TmzP2x5QV26pIH3mvhexLIT0HmPa3V7Q7knRfT9HG6kTwq02HZGLPw0sAOXrAmotElGRvTLCMbJsvxQ==", "license": "MIT", "dependencies": { - "@types/cookie": "^0.3.3", - "cookie": "^0.4.0" + "@types/cookie": "^0.6.0", + "cookie": "^0.7.2" } }, + "node_modules/universal-cookie/node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, "node_modules/universal-cookie/node_modules/cookie": { - "version": "0.4.2", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "license": "MIT", "engines": { "node": ">= 0.6" diff --git a/package.json b/package.json index 3cca35c71..b261e88fb 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,9 @@ "@openedx/frontend-plugin-framework": "^1.2.2", "@openedx/frontend-slot-footer": "^1.0.2", "@openedx/paragon": "22.9.0", - "@tensorflow-models/blazeface": "0.0.7", - "@tensorflow/tfjs-converter": "3.21.0", - "@tensorflow/tfjs-core": "3.21.0", + "@tensorflow-models/blazeface": "0.1.0", + "@tensorflow/tfjs-converter": "4.22.0", + "@tensorflow/tfjs-core": "4.22.0", "bowser": "2.11.0", "classnames": "2.5.1", "core-js": "3.38.1", @@ -80,16 +80,16 @@ "redux-thunk": "2.4.2", "regenerator-runtime": "0.14.1", "reselect": "^5.1.1", - "universal-cookie": "4.0.4" + "universal-cookie": "7.2.2" }, "devDependencies": { "@edx/browserslist-config": "1.2.0", - "@edx/reactifex": "1.1.0", + "@edx/reactifex": "2.2.0", "@openedx/frontend-build": "14.1.5", - "@testing-library/jest-dom": "6.6.2", + "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "12.1.5", "react-test-renderer": "17.0.2", "reactifex": "1.1.1", - "redux-mock-store": "1.5.4" + "redux-mock-store": "1.5.5" } }