diff --git a/client/package-lock.json b/client/package-lock.json index 7d057ca..a66d3a8 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8,7 +8,7 @@ "name": "descope-flask", "version": "0.1.0", "dependencies": { - "@descope/react-sdk": "^1.0.3", + "@descope/react-sdk": "^2.27.2", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -2139,84 +2139,455 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@descope/access-key-management-widget": { + "version": "0.5.37", + "resolved": "https://registry.npmjs.org/@descope/access-key-management-widget/-/access-key-management-widget-0.5.37.tgz", + "integrity": "sha512-1nKV7ptps6T9X9V3ggF3Lz7cPWgXsMM8y1JA2XtXtTMPAOEZ1sHdxcLVK0hojjGkH6HM6maNg/dSTj49HuojtA==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" + } + }, + "node_modules/@descope/access-key-management-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" + }, + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/access-key-management-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@descope/applications-portal-widget": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/@descope/applications-portal-widget/-/applications-portal-widget-0.5.20.tgz", + "integrity": "sha512-+B7694O+7xVLvtV0/r2liatsaEg4/ynbMHrtfnJVYHbah3PXAXeeF/zS0zLfymzPv2FjJ9aZo4LuG6pe6r1Adg==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" + } + }, + "node_modules/@descope/applications-portal-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" + }, + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/applications-portal-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@descope/audit-management-widget": { + "version": "0.5.37", + "resolved": "https://registry.npmjs.org/@descope/audit-management-widget/-/audit-management-widget-0.5.37.tgz", + "integrity": "sha512-w+d4H0Cq7U/p0VvFTUOIekZCmfihkkb1IVCbc2fN3RPW0VFoU+dg5hZEvBKpXTfeATvThR+AXOKDD0li0FDZrw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" + } + }, + "node_modules/@descope/audit-management-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" + }, + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/audit-management-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/@descope/core-js-sdk": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@descope/core-js-sdk/-/core-js-sdk-1.0.9.tgz", - "integrity": "sha512-e8rHQ+QwzuouSpYT90N/Tt14IcIBF1HcHLDb9H/GUU5x1VOXvZ4Dz0DJ08nPjN3kUoRlqLG8p0MvaKrmJ0B2+g==", + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/@descope/core-js-sdk/-/core-js-sdk-2.58.0.tgz", + "integrity": "sha512-apgmtj7J/4kc17WrmzLXp89XGM3aLFLg8HhtPDpAMcUKWAlS0MJ4rlKd6Ab0WRTlUCq7Gm9DUQQgCblX8qMCkA==", "dependencies": { - "eslint-plugin-jsx-a11y": "6.7.1", - "jwt-decode": "3.1.2", - "lodash.get": "4.4.2" + "jwt-decode": "4.0.0" } }, - "node_modules/@descope/react-sdk": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@descope/react-sdk/-/react-sdk-1.0.3.tgz", - "integrity": "sha512-yR1gRF2PaZlespixrR46sricGMn5mbEI3wRU3ea3eOTee3Ejh3W5z+EYuzf8g5T/DvypjXCcKJs5OCRFF2CEBg==", + "node_modules/@descope/escape-markdown": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@descope/escape-markdown/-/escape-markdown-0.1.6.tgz", + "integrity": "sha512-3ENrye8fyyAp88w8OoKGsEl/kH0GgcrPiDRoOajhCODOJnoJ8P/4/giBEjWZV/FKllW4Z5mSXGACEmlINOZLCA==" + }, + "node_modules/@descope/outbound-applications-widget": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/@descope/outbound-applications-widget/-/outbound-applications-widget-0.2.27.tgz", + "integrity": "sha512-8dVJsnpfzgBMu1xzYg7UPTDeSVuXq0WxmlAgvOHtq63vDFnaOLxKKtf5TssEL753QgV0iwyYKXqoKfkmwfSkzw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-component": "3.58.1", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" + } + }, + "node_modules/@descope/outbound-applications-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", "dependencies": { - "@descope/web-component": "2.0.14", - "react-router-dom": "6.9.0" + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" + }, + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/outbound-applications-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@descope/react-sdk": { + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/@descope/react-sdk/-/react-sdk-2.27.2.tgz", + "integrity": "sha512-S/c8vlYqPBzcWBg9SPnkC3v2cp2oFVOFyjNtPy5lWq3cBTEzYCGO98dddHRTmXHmABxPiTIs9ghEmaD/JVfP0g==", + "dependencies": { + "@descope/access-key-management-widget": "0.5.37", + "@descope/applications-portal-widget": "0.5.20", + "@descope/audit-management-widget": "0.5.37", + "@descope/core-js-sdk": "2.58.0", + "@descope/outbound-applications-widget": "0.2.27", + "@descope/role-management-widget": "0.5.29", + "@descope/sdk-helpers": "0.6.0", + "@descope/tenant-profile-widget": "0.5.27", + "@descope/user-management-widget": "0.11.16", + "@descope/user-profile-widget": "0.9.11", + "@descope/web-component": "3.58.1", + "@descope/web-js-sdk": "1.47.0" }, "peerDependencies": { - "@descope/web-js-sdk": "1.0.8", "@types/react": ">=16", "react": ">=16" } }, - "node_modules/@descope/react-sdk/node_modules/@remix-run/router": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.4.0.tgz", - "integrity": "sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==", - "engines": { - "node": ">=14" + "node_modules/@descope/role-management-widget": { + "version": "0.5.29", + "resolved": "https://registry.npmjs.org/@descope/role-management-widget/-/role-management-widget-0.5.29.tgz", + "integrity": "sha512-4EGdF8ud1YGbECu1YymcsFGroOhDWmV80GwphaRIz028UeXC4CGRVuIBt/J1vE0LCPFgr1v0t07WG9B1QDG0bQ==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" } }, - "node_modules/@descope/react-sdk/node_modules/react-router": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.9.0.tgz", - "integrity": "sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==", + "node_modules/@descope/role-management-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", "dependencies": { - "@remix-run/router": "1.4.0" + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/role-management-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@descope/sdk-component-drivers": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-component-drivers/-/sdk-component-drivers-0.9.0.tgz", + "integrity": "sha512-BYvIQd66vmyXM+uPePGZALIKqaCInrLh++XKiL1xHFjJgd7PQ+74nXkYE2r+VVteXFk0HpVNI7zBx6iejirJwg==", + "dependencies": { + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" + } + }, + "node_modules/@descope/sdk-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-helpers/-/sdk-helpers-0.6.0.tgz", + "integrity": "sha512-0zoIYnGJsJCYcMXdQOWp5j1KUgQfcosoDEtiGMsr4PlQCbWpLme4Ma+OY6DJ/BsMbuFcpbSMzvi2tJyVnMQF1w==", + "dependencies": { + "tslib": "2.8.1" + } + }, + "node_modules/@descope/tenant-profile-widget": { + "version": "0.5.27", + "resolved": "https://registry.npmjs.org/@descope/tenant-profile-widget/-/tenant-profile-widget-0.5.27.tgz", + "integrity": "sha512-n1o2StnBgUOTELQOgP9nXNGVmSaTrFTdNvNWniJdHdvsWpYr7UOwSq4I6LtHR3MnQWqz8Ybg55AKlNWaacWcfg==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-component": "3.58.1", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" + }, + "optionalDependencies": { + "@descope/core-js-sdk": "2.58.0" + } + }, + "node_modules/@descope/tenant-profile-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" }, "peerDependencies": { - "react": ">=16.8" + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/tenant-profile-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@descope/user-management-widget": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/@descope/user-management-widget/-/user-management-widget-0.11.16.tgz", + "integrity": "sha512-wCd5kwis580iWeOZbLsBJzCMtnB/gryLEaBE9YppSi+of62qMZevcM4xDd39b67GL6k9WVknPhSDgXrZKrzfXw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-component": "3.58.1", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "libphonenumber-js": "1.11.17", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" } }, - "node_modules/@descope/react-sdk/node_modules/react-router-dom": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.9.0.tgz", - "integrity": "sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==", + "node_modules/@descope/user-management-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", "dependencies": { - "@remix-run/router": "1.4.0", - "react-router": "6.9.0" + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/user-management-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@descope/user-profile-widget": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/@descope/user-profile-widget/-/user-profile-widget-0.9.11.tgz", + "integrity": "sha512-LJoIoEBBLGCmOHN7BlMSP8EiDzWdxxK4dX4RXEn9W+DtFMG9pj01OlDc9RVYi0Omjs7nfFX8EppZJCDBehsKqA==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-component": "3.58.1", + "@descope/web-js-sdk": "1.47.0", + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0", + "reselect": "5.1.1", + "tslib": "2.8.1" + }, + "optionalDependencies": { + "@descope/core-js-sdk": "2.58.0" + } + }, + "node_modules/@descope/user-profile-widget/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/user-profile-widget/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, "node_modules/@descope/web-component": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@descope/web-component/-/web-component-2.0.14.tgz", - "integrity": "sha512-UZMM1ZhbK4QQ8yWZz0qcRrZ+EBT4q4T75778og4j4YTL2oFbq4vyOBNYegzfvQEEv1uBh9lZB4iq42CMRbf09A==", + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@descope/web-component/-/web-component-3.58.1.tgz", + "integrity": "sha512-Whr1jb3Dfp/BQiradmNk5GPZgpC5sf9jZvPOvazaODRNZ/tDXpAu9NPqCneUzTDe74hufzMGtZ0XUEqbR/UVGA==", "dependencies": { - "@descope/web-js-sdk": "1.0.8" + "@descope/escape-markdown": "0.1.6", + "@descope/sdk-helpers": "0.6.0", + "@descope/sdk-mixins": "0.16.0", + "@descope/web-js-sdk": "1.47.0", + "@fingerprintjs/fingerprintjs-pro": "3.11.6", + "tslib": "2.8.1" + } + }, + "node_modules/@descope/web-component/node_modules/@descope/sdk-mixins": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@descope/sdk-mixins/-/sdk-mixins-0.16.0.tgz", + "integrity": "sha512-+mTddi0ISl3YZxadpWyd5Jmme+5JLltloPJt3GMcpUbJ4ELTK1yICwTE/0TXGf5KZAempOXhtxpMCdbweBaFMw==", + "dependencies": { + "@descope/sdk-component-drivers": "0.9.0", + "@descope/sdk-helpers": "0.6.0", + "tslib": "2.8.1" + }, + "peerDependencies": { + "@reduxjs/toolkit": "^2.0.1", + "immer": "^10.0.3", + "redux": "5.0.1", + "redux-thunk": "3.1.0" + } + }, + "node_modules/@descope/web-component/node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, "node_modules/@descope/web-js-sdk": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.0.8.tgz", - "integrity": "sha512-JZide403B91/PYj1jN2ZO8swXQa9jkjagXE7bBF77k596Db/OhChYRIiQTQyleZdqQYiWxch8XkkoSGgz9Tmhg==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.47.0.tgz", + "integrity": "sha512-g8HO5AYnaLhzahxNWkuUWytmO+9UdTqJOyvcD92wm6LOrwlzjMQiNtWpjifN6GEKE62+Hf74VgG7Y+0bF9RScw==", "dependencies": { - "@descope/core-js-sdk": "1.0.9", - "@fingerprintjs/fingerprintjs-pro": "3.8.2", - "js-cookie": "3.0.1" + "@descope/core-js-sdk": "2.58.0", + "@fingerprintjs/fingerprintjs-pro": "3.11.6", + "js-cookie": "3.0.5", + "jwt-decode": "4.0.0", + "tslib": "2.8.1" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2313,9 +2684,9 @@ } }, "node_modules/@fingerprintjs/fingerprintjs-pro": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@fingerprintjs/fingerprintjs-pro/-/fingerprintjs-pro-3.8.2.tgz", - "integrity": "sha512-cccPaHhzt2AnXbUEdpMW4/19eous5/WJhNlawq5BJKmmGSHJzjjb0kkNXgC0QlFll1YsoqLAxmGLOYRVVfmTBA==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/@fingerprintjs/fingerprintjs-pro/-/fingerprintjs-pro-3.11.6.tgz", + "integrity": "sha512-ohN4lorSzV0fzs8fELWuO3bvMMfzF5qyQSOWBvqwGaq6yPP+XSRJOeFdFFiwAqFWYJDEoDOlQluGfa0Rfk7mAQ==", "dependencies": { "tslib": "^2.4.1" } @@ -3203,6 +3574,40 @@ } } }, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", + "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/@remix-run/router": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.2.tgz", @@ -3311,6 +3716,16 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==" + }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -11633,11 +12048,11 @@ } }, "node_modules/js-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", - "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/js-sdsl": { @@ -11785,9 +12200,12 @@ } }, "node_modules/jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "engines": { + "node": ">=18" + } }, "node_modules/kind-of": { "version": "6.0.3", @@ -11855,6 +12273,11 @@ "node": ">= 0.8.0" } }, + "node_modules/libphonenumber-js": { + "version": "1.11.17", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.17.tgz", + "integrity": "sha512-Jr6v8thd5qRlOlc6CslSTzGzzQW03uiscab7KHQZX1Dfo4R6n6FDhZ0Hri6/X7edLIDv9gl4VMZXhxTjLnl0VQ==" + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -11913,11 +12336,6 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -14637,6 +15055,19 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -14763,6 +15194,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==" + }, "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", @@ -16217,9 +16653,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/tsutils": { "version": "3.21.0", diff --git a/client/package.json b/client/package.json index 0a0b80b..e118de2 100644 --- a/client/package.json +++ b/client/package.json @@ -4,7 +4,7 @@ "private": true, "proxy": "http://127.0.0.1:5000/", "dependencies": { - "@descope/react-sdk": "^1.0.3", + "@descope/react-sdk": "^2.27.2", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", diff --git a/client/src/ConfigError.js b/client/src/ConfigError.js new file mode 100644 index 0000000..2a25f0c --- /dev/null +++ b/client/src/ConfigError.js @@ -0,0 +1,50 @@ +import React from 'react'; + +const PLACEHOLDERS = new Set([ + '', + 'YOUR_DESCOPE_PROJECT_ID', + '__ProjectID__', + 'your-project-id', +]); + +export function isValidDescopeProjectId(value) { + if (typeof value !== 'string') return false; + const id = value.trim(); + if (!id) return false; + if (PLACEHOLDERS.has(id)) return false; + return true; +} + +export default function ConfigError() { + return ( +
+ Add your project ID to client/.env:
+
+ REACT_APP_PROJECT_ID=P2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ++
+ Use the same value as in the Descope console (Settings → Project). Then stop and restart{' '}
+ npm start — Create React App only reads{' '}
+ .env at startup.
+
Loading...
+You have 50+ students currently 🧑🎓
+You have 50+ students currently 🧑🎓
Unlucky! You have homework!
- +Unlucky! You have homework!
+Loading...
+Loading...
- } + if (isSessionLoading || isUserLoading) { + return ( +Loading...
+Loading...
+Loading...
+Secret Message: {secret.secret}
-Your Role(s):
- {!secret.roles || secret.roles.length === 0 ? -No role found!
- : - secret.roles.map((role, i) => ( -{role}
- )) - } - Home - Dashboard - -+ Secret Message:{' '} + + {secret.secret} + +
+Your Role(s):
+ {!secret.roles || secret.roles.length === 0 ? ( ++ No role found! +
+ ) : ( + secret.roles.map((role, i) => ( ++ {role} +
+ )) + )} + + Home + + + Dashboard + + +