diff --git a/api/package.json b/api/package.json index 065e7fdc0f5..a32f310db9b 100644 --- a/api/package.json +++ b/api/package.json @@ -22,7 +22,6 @@ "express-rate-limit": "^6.7.0", "fast-uri": "2.3.0", "fastify": "4.24.3", - "fastify-auth0-verify": "1.2.1", "fastify-plugin": "4.5.1", "joi": "17.12.1", "jsonwebtoken": "9.0.2", diff --git a/api/src/app.ts b/api/src/app.ts index da1fde7780d..77e9d706de0 100644 --- a/api/src/app.ts +++ b/api/src/app.ts @@ -18,11 +18,9 @@ import Fastify, { RawRequestDefaultExpression, RawServerDefault } from 'fastify'; -import fastifyAuth0 from 'fastify-auth0-verify'; import prismaPlugin from './db/prisma'; import cors from './plugins/cors'; -import jwtAuthz from './plugins/fastify-jwt-authz'; import { NodemailerProvider } from './plugins/mail-providers/nodemailer'; import { SESProvider } from './plugins/mail-providers/ses'; import mailer from './plugins/mailer'; @@ -30,7 +28,6 @@ import redirectWithMessage from './plugins/redirect-with-message'; import security from './plugins/security'; import sessionAuth from './plugins/session-auth'; import { - auth0Routes, devLoginCallback, devLegacyAuthRoutes, mobileAuth0Routes @@ -44,8 +41,6 @@ import { statusRoute } from './routes/status'; import { userGetRoutes, userRoutes } from './routes/user'; import { API_LOCATION, - AUTH0_AUDIENCE, - AUTH0_DOMAIN, COOKIE_DOMAIN, EMAIL_PROVIDER, FCC_ENABLE_DEV_LOGIN_MODE, @@ -194,17 +189,8 @@ export const build = async ( fastify.log.info(`Swagger UI available at ${API_LOCATION}/documentation`); } - // Auth0 plugin - void fastify.register(fastifyAuth0, { - domain: AUTH0_DOMAIN, - audience: AUTH0_AUDIENCE - }); - void fastify.register(jwtAuthz); void fastify.register(sessionAuth); - void fastify.register(prismaPlugin); - - void fastify.register(auth0Routes, { prefix: '/auth' }); void fastify.register(mobileAuth0Routes); if (FCC_ENABLE_DEV_LOGIN_MODE) { void fastify.register(devLoginCallback, { prefix: '/auth' }); diff --git a/api/src/plugins/fastify-jwt-authz.test.ts b/api/src/plugins/fastify-jwt-authz.test.ts deleted file mode 100644 index ac0dd7a608e..00000000000 --- a/api/src/plugins/fastify-jwt-authz.test.ts +++ /dev/null @@ -1,290 +0,0 @@ -/* -MIT License - -Copyright (c) 2018 Ethan Arrowood - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -import Fastify from 'fastify'; -import jwtAuthz from './fastify-jwt-authz'; - -interface ErrorResponse { - statusCode: number; - error: string; - message: string; -} - -describe('fastify-jwt-authz', () => { - test('should decorate request instance with jwtAuthz method', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get('/', req => { - expect(req).toHaveProperty('jwtAuthz'); - expect(req.jwtAuthz).toBeInstanceOf(Function); - return { foo: 'bar' }; - }); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/' - }); - - expect(res.statusCode).toEqual(200); - }); - - test('should throw an error "Scopes cannot be empty" with an empty scopes parameter', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test2', - { - preHandler: function (request, _reply, done) { - void request.jwtAuthz([], done); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test2' - }); - const resData: ErrorResponse = res.json(); - - expect(res.statusCode).toEqual(500); - expect(resData.message).toEqual('Scopes cannot be empty'); - }); - - test('should throw an error "request.user does not exist" non existing request.user', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test3', - { - preHandler: function (request, _reply, done) { - void request.jwtAuthz(['baz'], done); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test3' - }); - const resData: ErrorResponse = res.json(); - - expect(res.statusCode).toEqual(500); - expect(resData.message).toEqual('request.user does not exist'); - }); - - test('should throw an error "request.user.scope must be a string"', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test4', - { - preHandler: function (request, _reply, done) { - request.user = { - name: 'sample', - scope: 123 - }; - void request.jwtAuthz(['baz'], done); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test4' - }); - const resData: ErrorResponse = res.json(); - - expect(res.statusCode).toEqual(500); - expect(resData.message).toEqual('request.user.scope must be a string'); - }); - - test('should throw an error "Insufficient scope"', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test5', - { - preHandler: function (request, _reply, done) { - request.user = { - name: 'sample', - scope: 'baz' - }; - void request.jwtAuthz(['foo'], done); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test5' - }); - const resData: ErrorResponse = res.json(); - - expect(res.statusCode).toEqual(500); - expect(resData.message).toEqual('Insufficient scope'); - }); - - test('should verify user scope', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test6', - { - preHandler: function (request, _reply, done) { - request.user = { - name: 'sample', - scope: 'user manager' - }; - void request.jwtAuthz(['user'], done); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test6' - }); - - const resData: { foo: string } = res.json(); - - expect(res.statusCode).toEqual(200); - expect(resData.foo).toEqual('bar'); - }); - - test('should throw an error when there is no callback', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test7', - { - preHandler: function (request, _reply, done) { - request.user = { - name: 'sample', - scope: 123 - }; - - request.jwtAuthz(['baz']); - done(); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test7' - }); - const resData: ErrorResponse = res.json(); - - expect(res.statusCode).toEqual(500); - expect(resData.message).toEqual('request.user.scope must be a string'); - }); - - test('should verify user scope when there is no callback', async () => { - const fastify = Fastify(); - await fastify.register(jwtAuthz); - - fastify.get( - '/test8', - { - preHandler: function (request, _reply, done) { - request.user = { - name: 'sample', - scope: 'user manager' - }; - request.jwtAuthz(['user']); - done(); - } - }, - function () { - return { foo: 'bar' }; - } - ); - - fastify.listen({ port: 0 }, function () { - fastify.server.unref(); - }); - - const res = await fastify.inject({ - method: 'GET', - url: '/test8' - }); - const resData: { foo: string } = res.json(); - - expect(res.statusCode).toEqual(200); - expect(resData.foo).toEqual('bar'); - }); -}); diff --git a/api/src/plugins/fastify-jwt-authz.ts b/api/src/plugins/fastify-jwt-authz.ts deleted file mode 100644 index 23eccac04f1..00000000000 --- a/api/src/plugins/fastify-jwt-authz.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* -MIT License - -Copyright (c) 2018 Ethan Arrowood - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -import { FastifyPluginCallback, FastifyRequest } from 'fastify'; -import fp from 'fastify-plugin'; - -export interface UserObject { - scope?: string; -} - -interface JwtAuthz { - (scopes: string[], callback?: (err?: Error) => void): void; -} - -const fastifyJwtAuthz: FastifyPluginCallback = (fastify, _opts, done) => { - fastify.decorateRequest('jwtAuthz', jwtAuthz); - - function checkScopes(user: UserObject, scopes: string[]) { - if (scopes.length === 0) return Error('Scopes cannot be empty'); - - if (!user) return Error('request.user does not exist'); - - if (typeof user.scope !== 'string') - return Error('request.user.scope must be a string'); - - const userScopes = user.scope.split(' '); - const sufficientScope = scopes.some(scope => userScopes.includes(scope)); - - if (!sufficientScope) return Error('Insufficient scope'); - } - - function jwtAuthz( - this: FastifyRequest, - scopes: string[], - callback?: (err?: Error) => void - ) { - const err = checkScopes(this.user as UserObject, scopes); - if (callback) return callback(err); - if (err) throw err; - } - - done(); -}; - -declare module 'fastify' { - interface FastifyRequest { - jwtAuthz: JwtAuthz; - } -} - -export default fp(fastifyJwtAuthz); diff --git a/api/src/routes/auth.ts b/api/src/routes/auth.ts index 57f26ed9712..47bb210b850 100644 --- a/api/src/routes/auth.ts +++ b/api/src/routes/auth.ts @@ -78,28 +78,6 @@ export const devLoginCallback: FastifyPluginCallback = ( done(); }; -/** - * Route handler for Auth0 authentication. - * - * @param fastify The Fastify instance. - * @param _options Options passed to the plugin via `fastify.register(plugin, options)`. - * @param done Callback to signal that the logic has completed. - */ -// TODO: 1) use POST 2) make sure we prevent login CSRF -export const auth0Routes: FastifyPluginCallback = (fastify, _options, done) => { - fastify.addHook('onRequest', fastify.authenticate); - - fastify.get('/auth0/callback', async req => { - const email = await getEmailFromAuth0(req); - - const { id } = await findOrCreateUser(fastify, email); - req.session.user = { id }; - await req.session.save(); - }); - - done(); -}; - /** * Route handler for Mobile authentication. * diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eae9822eb7f..fe02cd4d21d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -222,9 +222,6 @@ importers: fastify: specifier: 4.24.3 version: 4.24.3 - fastify-auth0-verify: - specifier: 1.2.1 - version: 1.2.1 fastify-plugin: specifier: 4.5.1 version: 4.5.1 @@ -1391,7 +1388,7 @@ importers: devDependencies: debug: specifier: 4.3.4 - version: 4.3.4(supports-color@8.1.1) + version: 4.3.4 dotenv: specifier: 16.4.4 version: 16.4.4 @@ -1406,7 +1403,7 @@ importers: devDependencies: debug: specifier: 4.3.4 - version: 4.3.4(supports-color@8.1.1) + version: 4.3.4 dotenv: specifier: 16.4.4 version: 16.4.4 @@ -2657,7 +2654,7 @@ packages: '@babel/traverse': 7.23.3 '@babel/types': 7.23.3 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 lodash: 4.17.21 @@ -2680,7 +2677,7 @@ packages: '@babel/traverse': 7.23.3 '@babel/types': 7.23.3 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 lodash: 4.17.21 @@ -2706,7 +2703,7 @@ packages: '@babel/traverse': 7.23.0 '@babel/types': 7.23.0 convert-source-map: 1.9.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2729,7 +2726,7 @@ packages: '@babel/traverse': 7.23.3 '@babel/types': 7.23.3 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2751,7 +2748,7 @@ packages: '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2941,7 +2938,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/traverse': 7.23.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.6 semver: 6.3.1 @@ -2957,7 +2954,7 @@ packages: '@babel/core': 7.18.0 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.6 semver: 6.3.1 @@ -2973,7 +2970,7 @@ packages: '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.6 transitivePeerDependencies: @@ -2988,7 +2985,7 @@ packages: '@babel/core': 7.23.0 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.6 transitivePeerDependencies: @@ -3002,7 +2999,7 @@ packages: '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.6 transitivePeerDependencies: @@ -6425,7 +6422,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.3 '@babel/types': 7.23.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6442,7 +6439,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.3 '@babel/types': 7.23.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6459,7 +6456,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.6 '@babel/types': 7.23.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6817,7 +6814,7 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 espree: 7.3.1 globals: 13.22.0 ignore: 4.0.6 @@ -6833,7 +6830,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 espree: 9.6.1 globals: 13.22.0 ignore: 5.2.4 @@ -6861,13 +6858,6 @@ packages: fast-uri: 2.3.0 dev: false - /@fastify/cookie@8.3.0: - resolution: {integrity: sha512-P9hY9GO11L20TnZ33XN3i0bt+3x0zaT7S0ohAzWO950E9PB2xnNhLYzPFJIGFi5AVN0yr5+/iZhWxeYvR6KCzg==} - dependencies: - cookie: 0.5.0 - fastify-plugin: 4.5.1 - dev: false - /@fastify/cookie@9.1.0: resolution: {integrity: sha512-w/LlQjj7cmYlQNhEKNm4jQoLkFXCL73kFu1Jy3aL7IFbYEojEKur0f7ieCKUxBBaU65tpaWC83UM8xW7AzY6uw==} dependencies: @@ -6910,26 +6900,6 @@ packages: fast-json-stringify: 5.8.0 dev: false - /@fastify/jwt@6.7.1: - resolution: {integrity: sha512-pvRcGeyF2H1U+HXaxlRBd6s1y99vbSZjhpxTWECIGIhMXKRxBTBSUPRF7LJGONlW1/pZstQ0/Dp/ZxBFlDuEnw==} - dependencies: - '@fastify/error': 3.4.1 - '@lukeed/ms': 2.0.1 - fast-jwt: 2.2.3 - fastify-plugin: 4.5.1 - steed: 1.1.3 - dev: false - - /@fastify/jwt@7.2.1: - resolution: {integrity: sha512-CAEL8UxIIn1Baxm6GIjH7j5VNUqAijeBWF3dvxLQd+RNDYCBnVt0RtK3JV4WbfOaMsKQ0IhrxrekroWwhXYOpw==} - dependencies: - '@fastify/error': 3.4.1 - '@lukeed/ms': 2.0.1 - fast-jwt: 3.3.0 - fastify-plugin: 4.5.1 - steed: 1.1.3 - dev: false - /@fastify/send@2.1.0: resolution: {integrity: sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==} dependencies: @@ -7341,7 +7311,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7351,7 +7321,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8004,7 +7974,7 @@ packages: react-refresh: 0.11.0 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /@polka/url@1.0.0-next.23: @@ -9118,7 +9088,7 @@ packages: react-dom: 16.14.0(react@16.14.0) regenerator-runtime: 0.13.11 ts-dedent: 2.2.0 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 transitivePeerDependencies: - '@storybook/mdx2-csf' - eslint @@ -9429,7 +9399,7 @@ packages: ts-dedent: 2.2.0 typescript: 5.2.2 util-deprecate: 1.0.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 webpack-dev-middleware: 4.3.0(webpack@5.89.0) webpack-hot-middleware: 2.25.4 webpack-virtual-modules: 0.4.6 @@ -9600,7 +9570,7 @@ packages: typescript: 5.2.2 unfetch: 4.2.0 util-deprecate: 1.0.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /@storybook/core-common@6.5.16(eslint@8.56.0)(react-dom@16.14.0)(react@16.14.0)(typescript@5.2.2): @@ -9783,7 +9753,7 @@ packages: react: 16.14.0 react-dom: 16.14.0(react@16.14.0) typescript: 5.2.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 transitivePeerDependencies: - '@storybook/mdx2-csf' - bluebird @@ -9945,7 +9915,7 @@ packages: ts-dedent: 2.2.0 typescript: 5.2.2 util-deprecate: 1.0.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 webpack-dev-middleware: 4.3.0(webpack@5.89.0) webpack-virtual-modules: 0.4.6 transitivePeerDependencies: @@ -10027,7 +9997,7 @@ packages: typescript: '>= 3.x' webpack: '>= 4' dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.1.0 @@ -10035,7 +10005,7 @@ packages: react-docgen-typescript: 2.2.2(typescript@5.2.2) tslib: 2.6.2 typescript: 5.2.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 transitivePeerDependencies: - supports-color dev: true @@ -10109,7 +10079,7 @@ packages: ts-dedent: 2.2.0 typescript: 5.2.2 util-deprecate: 1.0.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 transitivePeerDependencies: - '@storybook/mdx2-csf' - '@swc/core' @@ -11233,7 +11203,7 @@ packages: '@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@5.2.2) '@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 4.33.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 7.32.0 functional-red-black-tree: 1.0.1 ignore: 5.2.4 @@ -11261,7 +11231,7 @@ packages: '@typescript-eslint/type-utils': 6.10.0(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/utils': 6.10.0(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.10.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -11319,7 +11289,7 @@ packages: '@typescript-eslint/scope-manager': 4.33.0 '@typescript-eslint/types': 4.33.0 '@typescript-eslint/typescript-estree': 4.33.0(typescript@5.2.2) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 7.32.0 typescript: 5.2.2 transitivePeerDependencies: @@ -11339,7 +11309,7 @@ packages: '@typescript-eslint/types': 6.10.0 '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.10.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.56.0 typescript: 5.2.2 transitivePeerDependencies: @@ -11379,7 +11349,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) '@typescript-eslint/utils': 6.10.0(eslint@8.56.0)(typescript@5.2.2) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 @@ -11415,7 +11385,7 @@ packages: dependencies: '@typescript-eslint/types': 3.10.1 '@typescript-eslint/visitor-keys': 3.10.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 glob: 7.2.3 is-glob: 4.0.3 lodash: 4.17.21 @@ -11436,7 +11406,7 @@ packages: dependencies: '@typescript-eslint/types': 4.33.0 '@typescript-eslint/visitor-keys': 4.33.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -11456,7 +11426,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -11477,7 +11447,7 @@ packages: dependencies: '@typescript-eslint/types': 6.10.0 '@typescript-eslint/visitor-keys': 6.10.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -11960,7 +11930,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -12605,7 +12575,7 @@ packages: resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} dependencies: archy: 1.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 fastq: 1.15.0 transitivePeerDependencies: - supports-color @@ -14429,7 +14399,7 @@ packages: minipass-pipeline: 1.2.4 mkdirp: 1.0.4 p-map: 4.0.0 - promise-inflight: 1.0.1(bluebird@3.7.2) + promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 8.0.1 tar: 6.2.0 @@ -14936,11 +14906,6 @@ packages: engines: {node: '>=0.8'} dev: true - /clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - dev: false - /co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -15185,7 +15150,7 @@ packages: express-session: ^1.17.1 mongodb: ^4.1.0 dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 express-session: 1.17.3 kruptein: 3.0.6 mongodb: 4.17.2 @@ -15619,7 +15584,7 @@ packages: postcss-value-parser: 4.2.0 schema-utils: 2.7.1 semver: 6.3.1 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /css-loader@5.2.7(webpack@5.89.0): @@ -16000,6 +15965,16 @@ packages: ms: 2.0.0 dev: false + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + /debug@3.2.7(supports-color@5.5.0): resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -16021,6 +15996,7 @@ packages: dependencies: ms: 2.1.3 supports-color: 8.1.1 + dev: true /debug@4.3.1: resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} @@ -16034,6 +16010,17 @@ packages: ms: 2.1.2 dev: true + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -16045,6 +16032,7 @@ packages: dependencies: ms: 2.1.2 supports-color: 8.1.1 + dev: true /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} @@ -16339,7 +16327,7 @@ packages: hasBin: true dependencies: address: 1.1.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -16367,7 +16355,7 @@ packages: '@types/tmp': 0.0.33 application-config-path: 0.1.1 command-exists: 1.2.9 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 eol: 0.9.1 get-port: 3.2.0 glob: 7.2.3 @@ -16495,7 +16483,7 @@ packages: /docsify-server-renderer@4.13.1: resolution: {integrity: sha512-XNJeCK3zp+mVO7JZFn0bH4hNBAMMC1MbuCU7CBsjLHYn4NHrjIgCBGmylzEan3/4Qm6kbSzQx8XzUK5T7GQxHw==} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 docsify: 4.13.1 node-fetch: 2.7.0 resolve-pathname: 3.0.0 @@ -16796,7 +16784,7 @@ packages: dependencies: base64-arraybuffer: 0.1.4 component-emitter: 1.3.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 engine.io-parser: 4.0.3 has-cors: 1.1.0 parseqs: 0.0.6 @@ -16823,7 +16811,7 @@ packages: base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 engine.io-parser: 4.0.3 ws: 7.4.6 transitivePeerDependencies: @@ -17246,7 +17234,7 @@ packages: /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.6 transitivePeerDependencies: @@ -17259,10 +17247,10 @@ packages: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0) get-tsconfig: 4.7.2 globby: 13.2.2 @@ -17297,7 +17285,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@5.2.2) - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 eslint: 7.32.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) @@ -17326,13 +17314,41 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 6.10.0(eslint@8.56.0)(typescript@5.2.2) - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) transitivePeerDependencies: - supports-color + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.56.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.10.0(eslint@8.56.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.56.0 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@6.10.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + /eslint-plugin-filenames-simple@0.8.0(eslint@8.56.0): resolution: {integrity: sha512-8+uBzNBE5gSUMQv7bmMBiOD26eKzD4/5flPtD5Vl3dzZLXotSwXK3W7ZZqKQfU0Qyoborh+LqbN76EfmbBcU8A==} engines: {node: ^14.17.0 || ^16.0.0 || ^18.0.0} @@ -17386,7 +17402,7 @@ packages: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 doctrine: 2.1.0 eslint: 7.32.0 eslint-import-resolver-node: 0.3.9 @@ -17420,7 +17436,7 @@ packages: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -17460,7 +17476,7 @@ packages: '@es-joy/jsdoccomment': 0.39.4 are-docs-informative: 0.0.2 comment-parser: 1.3.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 escape-string-regexp: 4.0.0 eslint: 8.56.0 esquery: 1.5.0 @@ -17691,7 +17707,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 enquirer: 2.4.1 escape-string-regexp: 4.0.0 @@ -17744,7 +17760,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -18179,6 +18195,20 @@ packages: resolution: {integrity: sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==} engines: {node: ^10.17.0 || ^12.0.0 || >= 13.7.0} + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.1 + transitivePeerDependencies: + - supports-color + dev: true + /extract-zip@2.0.1(supports-color@8.1.1): resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -18262,25 +18292,6 @@ packages: rfdc: 1.3.0 dev: false - /fast-jwt@2.2.3: - resolution: {integrity: sha512-ziANDWUZpgUyE+A8YAkauVnGa/XXJGEXC1H3qXAYnT8v4Et3EsC8Zuvw8ljiqDgRearw9Wy+Q/Miw5x1XmPJTA==} - engines: {node: '>=14 <22'} - dependencies: - asn1.js: 5.4.1 - ecdsa-sig-formatter: 1.0.11 - mnemonist: 0.39.5 - dev: false - - /fast-jwt@3.3.0: - resolution: {integrity: sha512-tN33BAxlfnMrStYTvHwnoCoTZj9e7sGWfWGg/Naluxe6I5IsF7J2UwEjCJvJ7YD6fyAUo0WWd+OrBIFAmfZPrw==} - engines: {node: '>=16 <22'} - dependencies: - '@lukeed/ms': 2.0.1 - asn1.js: 5.4.1 - ecdsa-sig-formatter: 1.0.11 - mnemonist: 0.39.5 - dev: false - /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -18319,39 +18330,6 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - /fastfall@1.5.1: - resolution: {integrity: sha512-KH6p+Z8AKPXnmA7+Iz2Lh8ARCMr+8WNPVludm1LGkZoD2MjY6LVnRMtTKhkdzI+jr0RzQWXKzKyBJm1zoHEL4Q==} - engines: {node: '>=0.10.0'} - dependencies: - reusify: 1.0.4 - dev: false - - /fastify-auth0-verify@1.2.1: - resolution: {integrity: sha512-1f7/9cNxwwQLEjkdV63AOkS23zNrPpt10JpDLxycV7nInYltnyneGADONWZGtSdtB5UwxTEcgqUBprl50H2suA==} - engines: {node: '>= 14.0.0'} - dependencies: - '@fastify/cookie': 9.1.0 - '@fastify/jwt': 7.2.1 - fastify-jwt-jwks: 1.1.3 - fastify-plugin: 4.5.1 - transitivePeerDependencies: - - encoding - dev: false - - /fastify-jwt-jwks@1.1.3: - resolution: {integrity: sha512-0aHfOAhWS1wD754HKb3y7WUfE5TJgDaXzqqAwBRSFsSxYJ5EaAfrsUhDjQOGj6nSYFSRSdCAaZZLeePSiCfR+w==} - engines: {node: '>= 14.0.0'} - dependencies: - '@fastify/cookie': 8.3.0 - '@fastify/jwt': 6.7.1 - fastify-plugin: 4.5.1 - http-errors: 2.0.0 - node-cache: 5.1.2 - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: false - /fastify-plugin@4.5.1: resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} dev: false @@ -18379,25 +18357,11 @@ packages: - supports-color dev: false - /fastparallel@2.4.1: - resolution: {integrity: sha512-qUmhxPgNHmvRjZKBFUNI0oZuuH9OlSIOXmJ98lhKPxMZZ7zS/Fi0wRHOihDSz0R1YiIOjxzOY4bq65YTcdBi2Q==} - dependencies: - reusify: 1.0.4 - xtend: 4.0.2 - dev: false - /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 - /fastseries@1.7.2: - resolution: {integrity: sha512-dTPFrPGS8SNSzAt7u/CbMKCJ3s01N04s4JFbORHcmyvVfVKmbhMD1VtRbh5enGHxkaQDqWyLefiKOGGmohGDDQ==} - dependencies: - reusify: 1.0.4 - xtend: 4.0.2 - dev: false - /fault@1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} dependencies: @@ -18664,7 +18628,7 @@ packages: debug: optional: true dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 /follow-redirects@1.15.3(debug@4.3.4): resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} @@ -18675,7 +18639,7 @@ packages: debug: optional: true dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -18814,7 +18778,7 @@ packages: semver: 7.5.4 tapable: 1.1.3 typescript: 5.2.2 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /form-data@2.3.3: @@ -19311,7 +19275,7 @@ packages: chokidar: 3.6.0 contentful-management: 7.54.2(debug@4.3.4) cors: 2.8.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 detect-port: 1.5.1 dotenv: 8.6.0 execa: 5.1.1 @@ -19510,7 +19474,7 @@ packages: css-minimizer-webpack-plugin: 2.0.0(webpack@5.89.0) css.escape: 1.5.1 date-fns: 2.30.0 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 deepmerge: 4.3.1 del: 5.1.0 detect-port: 1.5.1 @@ -20584,7 +20548,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /htmlescape@1.1.1: @@ -20686,7 +20650,7 @@ packages: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -20697,7 +20661,7 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -20764,7 +20728,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color dev: true @@ -20774,7 +20738,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -21707,7 +21671,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -22565,7 +22529,7 @@ packages: resolution: {integrity: sha512-pJ4XLQP4Q9HTxl6RVDLJ8Cyh1uitSs0CzDBAz1uoJ4sRD/Bk7cFSXL1FUXDW3zJ7YnfliJx6eu8Jn283bpZ4Yg==} engines: {node: '>=10'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 rfdc: 1.3.0 uri-js: 4.4.1 transitivePeerDependencies: @@ -22854,7 +22818,7 @@ packages: cli-truncate: 3.1.0 colorette: 2.0.20 commander: 9.5.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 execa: 6.1.0 lilconfig: 2.0.6 listr2: 5.0.8 @@ -23167,7 +23131,7 @@ packages: dependencies: async: 0.9.2 commondir: 1.0.1 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 lodash: 4.17.21 semver: 5.7.2 strong-globalize: 4.1.3 @@ -23180,7 +23144,7 @@ packages: resolution: {integrity: sha512-vDRR4gqkvGOEXh5yL383xGuGxUW9xtF+NCY6/lJu1VAgupKltZxEx3Vw+L3nsGvQrlkJTSmiK3jk72qxkoBtbw==} engines: {node: '>=6'} dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 lodash: 4.17.21 loopback-swagger: 5.9.0 strong-globalize: 4.1.3 @@ -23195,7 +23159,7 @@ packages: dependencies: async: 2.6.4 bson: 1.1.6 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 loopback-connector: 4.11.1 mongodb: 3.6.9 strong-globalize: 4.1.3 @@ -23225,7 +23189,7 @@ packages: dependencies: async: 3.2.4 bluebird: 3.7.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 msgpack5: 4.5.1 strong-globalize: 5.1.0 uuid: 7.0.3 @@ -23239,7 +23203,7 @@ packages: dependencies: async: 2.6.4 bluebird: 3.7.2 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 depd: 1.1.2 inflection: 1.13.4 lodash: 4.17.21 @@ -23263,7 +23227,7 @@ packages: resolution: {integrity: sha512-p0qSzuuX7eATe5Bxy+RqCj3vSfSFfdCtqyf3yuC+DpchMvgal33XlhEi2UmywyK/Ym28oVnZxxWmfrwFMzSwLQ==} engines: {node: '>=4.0.0'} dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 transitivePeerDependencies: - supports-color dev: false @@ -23273,7 +23237,7 @@ packages: engines: {node: '>=8.9'} dependencies: async: 2.6.4 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 strong-globalize: 4.1.3 transitivePeerDependencies: - supports-color @@ -23284,7 +23248,7 @@ packages: engines: {node: '>=8'} dependencies: async: 2.6.4 - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 ejs: 2.7.4 lodash: 4.17.21 strong-globalize: 4.1.3 @@ -24395,7 +24359,7 @@ packages: /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -24405,7 +24369,7 @@ packages: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} dependencies: '@types/debug': 4.1.9 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -24428,7 +24392,7 @@ packages: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.9 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -24674,12 +24638,6 @@ packages: engines: {node: '>=10'} hasBin: true - /mnemonist@0.39.5: - resolution: {integrity: sha512-FPUtkhtJ0efmEFGpU14x7jGbTB+s18LrzRL2KgoWz9YvcY3cPomz8tih01GbHwnGk/OmkOKfqd/RAQoc8Lm7DQ==} - dependencies: - obliterator: 2.0.4 - dev: false - /mocha@10.3.0: resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} engines: {node: '>= 14.0.0'} @@ -25090,13 +25048,6 @@ packages: resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} dev: false - /node-cache@5.1.2: - resolution: {integrity: sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==} - engines: {node: '>= 8.0.0'} - dependencies: - clone: 2.1.2 - dev: false - /node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -25481,10 +25432,6 @@ packages: resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} dev: true - /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - dev: false - /on-exit-leak-free@2.1.0: resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} dev: false @@ -26507,7 +26454,7 @@ packages: postcss: 7.0.39 schema-utils: 3.3.0 semver: 7.5.4 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /postcss-loader@4.3.0(postcss@8.4.35)(webpack@5.89.0): @@ -26990,6 +26937,15 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + /promise-inflight@1.0.1(bluebird@3.7.2): resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -27192,7 +27148,7 @@ packages: dependencies: debug: 4.3.1 devtools-protocol: 0.0.901419 - extract-zip: 2.0.1(supports-color@8.1.1) + extract-zip: 2.0.1 https-proxy-agent: 5.0.0 node-fetch: 2.6.1 pkg-dir: 4.2.0 @@ -29401,7 +29357,7 @@ packages: '@types/component-emitter': 1.2.12 backo2: 1.0.2 component-emitter: 1.3.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 engine.io-client: 4.1.4 parseuri: 0.0.6 socket.io-parser: 4.0.5 @@ -29416,7 +29372,7 @@ packages: dependencies: '@types/component-emitter': 1.2.12 component-emitter: 1.3.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -29429,7 +29385,7 @@ packages: '@types/node': 14.18.63 accepts: 1.3.8 base64id: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 engine.io: 4.1.2 socket.io-adapter: 2.1.0 socket.io-parser: 4.0.5 @@ -29667,7 +29623,7 @@ packages: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -29695,16 +29651,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - /steed@1.1.3: - resolution: {integrity: sha512-EUkci0FAUiE4IvGTSKcDJIQ/eRUP2JJb56+fvZ4sdnguLTqIdKjSxUe138poW8mkvKWXW2sFPrgTsxqoISnmoA==} - dependencies: - fastfall: 1.5.1 - fastparallel: 2.4.1 - fastq: 1.15.0 - fastseries: 1.7.2 - reusify: 1.0.4 - dev: false - /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -30056,7 +30002,7 @@ packages: dependencies: '@types/express': 4.17.18 accepts: 1.3.8 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 ejs: 3.1.9 fast-safe-stringify: 2.1.1 http-status: 1.7.0 @@ -30071,7 +30017,7 @@ packages: engines: {node: '>=6'} dependencies: accept-language: 3.0.18 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globalize: 1.7.0 lodash: 4.17.21 md5: 2.3.0 @@ -30086,7 +30032,7 @@ packages: engines: {node: '>=8.9'} dependencies: accept-language: 3.0.18 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globalize: 1.7.0 lodash: 4.17.21 md5: 2.3.0 @@ -30102,7 +30048,7 @@ packages: engines: {node: '>=10'} dependencies: accept-language: 3.0.18 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globalize: 1.7.0 lodash: 4.17.21 md5: 2.3.0 @@ -30119,7 +30065,7 @@ packages: dependencies: async: 3.2.4 body-parser: 1.20.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 depd: 2.0.0 escape-string-regexp: 2.0.0 eventemitter2: 5.0.1 @@ -30171,7 +30117,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 2.7.1 - webpack: 5.89.0(webpack-cli@4.10.0) + webpack: 5.89.0 dev: true /style-loader@2.0.0(webpack@5.89.0): @@ -30253,7 +30199,7 @@ packages: dependencies: component-emitter: 1.3.0 cookiejar: 2.1.4 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 @@ -30272,7 +30218,7 @@ packages: dependencies: component-emitter: 1.3.0 cookiejar: 2.1.4 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 @@ -31914,7 +31860,7 @@ packages: vite: optional: true dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.2(typescript@5.2.2) vite: 4.5.2(@types/node@18.19.17) @@ -32240,7 +32186,7 @@ packages: /webpack-virtual-modules@0.2.2: resolution: {integrity: sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==} dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 transitivePeerDependencies: - supports-color dev: true @@ -32248,7 +32194,7 @@ packages: /webpack-virtual-modules@0.3.2: resolution: {integrity: sha512-RXQXioY6MhzM4CNQwmBwKXYgBs6ulaiQ8bkNQEl2J6Z+V+s7lgl/wGvaI/I0dLnYKB8cKsxQc17QOAVIphPLDw==} dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 3.2.7 transitivePeerDependencies: - supports-color @@ -32296,6 +32242,46 @@ packages: - supports-color dev: true + /webpack@5.89.0: + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.5 + '@types/estree': 1.0.2 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.10.0 + acorn-import-assertions: 1.9.0(acorn@8.10.0) + browserslist: 4.22.1 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.3.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.9(webpack@5.89.0) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + /webpack@5.89.0(webpack-cli@4.10.0): resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'}