diff --git a/apps/api/package.json b/apps/api/package.json index 832b50a1..25052a56 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -11,11 +11,11 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@fastify/compress": "^7.0.3", - "@fastify/cookie": "^9.3.1", - "@fastify/cors": "^9.0.0", - "@fastify/rate-limit": "^9.1.0", - "@fastify/websocket": "^8.3.1", + "@fastify/compress": "^8.0.1", + "@fastify/cookie": "^11.0.2", + "@fastify/cors": "^11.0.0", + "@fastify/rate-limit": "^10.2.2", + "@fastify/websocket": "^11.0.2", "@node-rs/argon2": "^2.0.2", "@openpanel/auth": "workspace:^", "@openpanel/common": "workspace:*", @@ -28,21 +28,22 @@ "@openpanel/redis": "workspace:*", "@openpanel/trpc": "workspace:*", "@openpanel/validation": "workspace:*", - "@trpc/server": "^10.45.1", + "@trpc/server": "^10.45.2", "bcrypt": "^5.1.1", - "fastify": "^4.25.2", - "fastify-metrics": "^11.0.0", - "fastify-raw-body": "^4.2.1", - "ico-to-png": "^0.2.1", + "fast-json-stable-hash": "^1.0.3", + "fastify": "^5.2.1", + "fastify-metrics": "^12.1.0", + "fastify-raw-body": "^5.0.0", + "ico-to-png": "^0.2.2", "jsonwebtoken": "^9.0.2", "ramda": "^0.29.1", "request-ip": "^3.3.0", - "sharp": "^0.33.2", + "sharp": "^0.33.5", "source-map-support": "^0.5.21", "sqlstring": "^2.3.3", "superjson": "^1.13.3", "svix": "^1.24.0", - "url-metadata": "^4.1.0", + "url-metadata": "^4.1.1", "uuid": "^9.0.1", "zod": "^3.22.4" }, @@ -51,12 +52,12 @@ "@openpanel/sdk": "workspace:*", "@openpanel/tsconfig": "workspace:*", "@types/js-yaml": "^4.0.9", - "@types/jsonwebtoken": "^9.0.6", - "@types/ramda": "^0.29.6", + "@types/jsonwebtoken": "^9.0.9", + "@types/ramda": "^0.30.2", "@types/request-ip": "^0.0.41", "@types/source-map-support": "^0.5.10", "@types/sqlstring": "^2.3.2", - "@types/uuid": "^9.0.8", + "@types/uuid": "^10.0.0", "@types/ws": "^8.5.14", "js-yaml": "^4.1.0", "tsup": "^7.2.0", diff --git a/apps/api/src/controllers/event.controller.ts b/apps/api/src/controllers/event.controller.ts index 359269a6..a264b672 100644 --- a/apps/api/src/controllers/event.controller.ts +++ b/apps/api/src/controllers/event.controller.ts @@ -4,7 +4,7 @@ import type { FastifyReply, FastifyRequest } from 'fastify'; import { generateDeviceId } from '@openpanel/common/server'; import { getSalts } from '@openpanel/db'; import { eventsQueue } from '@openpanel/queue'; -import { getRedisCache } from '@openpanel/redis'; +import { getLock } from '@openpanel/redis'; import type { PostEventPayload } from '@openpanel/sdk'; import { getStringHeaders, getTimestamp } from './track.controller'; @@ -42,12 +42,10 @@ export async function postEvent( const isScreenView = request.body.name === 'screen_view'; // this will ensure that we don't have multiple events creating sessions const LOCK_DURATION = 1000; - const locked = await getRedisCache().set( + const locked = await getLock( `request:priority:${currentDeviceId}-${previousDeviceId}:${isScreenView ? 'screen_view' : 'other'}`, 'locked', - 'PX', LOCK_DURATION, - 'NX', ); await eventsQueue.add( @@ -65,7 +63,7 @@ export async function postEvent( geo, currentDeviceId, previousDeviceId, - priority: locked === 'OK', + priority: locked, }, }, { diff --git a/apps/api/src/controllers/live.controller.ts b/apps/api/src/controllers/live.controller.ts index 1a3da5e8..32b26309 100644 --- a/apps/api/src/controllers/live.controller.ts +++ b/apps/api/src/controllers/live.controller.ts @@ -1,8 +1,7 @@ -import type { SocketStream } from '@fastify/websocket'; import type { FastifyRequest } from 'fastify'; import superjson from 'superjson'; -import type { WebSocket } from 'ws'; +import type { WebSocket } from '@fastify/websocket'; import { eventBuffer, getProfileByIdCached, @@ -16,20 +15,12 @@ import { import { getProjectAccess } from '@openpanel/trpc'; import { getOrganizationAccess } from '@openpanel/trpc/src/access'; -type WebSocketConnection = SocketStream & { - socket: WebSocket & { - on(event: 'close', listener: () => void): void; - send(data: string): void; - close(): void; - }; -}; - export function getLiveEventInfo(key: string) { return key.split(':').slice(2) as [string, string]; } export function wsVisitors( - connection: WebSocketConnection, + socket: WebSocket, req: FastifyRequest<{ Params: { projectId: string; @@ -37,11 +28,10 @@ export function wsVisitors( }>, ) { const { params } = req; - const unsubscribe = subscribeToPublishedEvent('events', 'saved', (event) => { if (event?.projectId === params.projectId) { eventBuffer.getActiveVisitorCount(params.projectId).then((count) => { - connection.socket.send(String(count)); + socket.send(String(count)); }); } }); @@ -52,20 +42,20 @@ export function wsVisitors( const [projectId] = getLiveEventInfo(key); if (projectId && projectId === params.projectId) { eventBuffer.getActiveVisitorCount(params.projectId).then((count) => { - connection.socket.send(String(count)); + socket.send(String(count)); }); } }, ); - connection.socket.on('close', () => { + socket.on('close', () => { unsubscribe(); punsubscribe(); }); } export async function wsProjectEvents( - connection: WebSocketConnection, + socket: WebSocket, req: FastifyRequest<{ Params: { projectId: string; @@ -80,15 +70,15 @@ export async function wsProjectEvents( const type = query.type || 'saved'; if (!['saved', 'received'].includes(type)) { - connection.socket.send('Invalid type'); - connection.socket.close(); + socket.send('Invalid type'); + socket.close(); return; } const userId = req.session?.userId; if (!userId) { - connection.socket.send('No active session'); - connection.socket.close(); + socket.send('No active session'); + socket.close(); return; } @@ -106,7 +96,7 @@ export async function wsProjectEvents( event.profileId, event.projectId, ); - connection.socket.send( + socket.send( superjson.stringify( access ? { @@ -120,11 +110,11 @@ export async function wsProjectEvents( }, ); - connection.socket.on('close', () => unsubscribe()); + socket.on('close', () => unsubscribe()); } export async function wsProjectNotifications( - connection: WebSocketConnection, + socket: WebSocket, req: FastifyRequest<{ Params: { projectId: string; @@ -135,8 +125,8 @@ export async function wsProjectNotifications( const userId = req.session?.userId; if (!userId) { - connection.socket.send('No active session'); - connection.socket.close(); + socket.send('No active session'); + socket.close(); return; } @@ -146,8 +136,8 @@ export async function wsProjectNotifications( }); if (!access) { - connection.socket.send('No access'); - connection.socket.close(); + socket.send('No access'); + socket.close(); return; } @@ -156,16 +146,16 @@ export async function wsProjectNotifications( 'created', (notification) => { if (notification.projectId === params.projectId) { - connection.socket.send(superjson.stringify(notification)); + socket.send(superjson.stringify(notification)); } }, ); - connection.socket.on('close', () => unsubscribe()); + socket.on('close', () => unsubscribe()); } export async function wsOrganizationEvents( - connection: WebSocketConnection, + socket: WebSocket, req: FastifyRequest<{ Params: { organizationId: string; @@ -176,8 +166,8 @@ export async function wsOrganizationEvents( const userId = req.session?.userId; if (!userId) { - connection.socket.send('No active session'); - connection.socket.close(); + socket.send('No active session'); + socket.close(); return; } @@ -187,8 +177,8 @@ export async function wsOrganizationEvents( }); if (!access) { - connection.socket.send('No access'); - connection.socket.close(); + socket.send('No access'); + socket.close(); return; } @@ -196,9 +186,9 @@ export async function wsOrganizationEvents( 'organization', 'subscription_updated', (message) => { - connection.socket.send(setSuperJson(message)); + socket.send(setSuperJson(message)); }, ); - connection.socket.on('close', () => unsubscribe()); + socket.on('close', () => unsubscribe()); } diff --git a/apps/api/src/controllers/oauth-callback.controller.tsx b/apps/api/src/controllers/oauth-callback.controller.tsx index 9748b84c..2b45adcc 100644 --- a/apps/api/src/controllers/oauth-callback.controller.tsx +++ b/apps/api/src/controllers/oauth-callback.controller.tsx @@ -76,7 +76,7 @@ async function handleExistingUser({ sessionToken, session.expiresAt, ); - return reply.status(302).redirect(process.env.NEXT_PUBLIC_DASHBOARD_URL!); + return reply.redirect(process.env.NEXT_PUBLIC_DASHBOARD_URL!); } async function handleNewUser({ @@ -138,7 +138,7 @@ async function handleNewUser({ sessionToken, session.expiresAt, ); - return reply.status(302).redirect(process.env.NEXT_PUBLIC_DASHBOARD_URL!); + return reply.redirect(process.env.NEXT_PUBLIC_DASHBOARD_URL!); } // Provider-specific user fetching diff --git a/apps/api/src/controllers/track.controller.ts b/apps/api/src/controllers/track.controller.ts index aa481d1f..34a9f50e 100644 --- a/apps/api/src/controllers/track.controller.ts +++ b/apps/api/src/controllers/track.controller.ts @@ -6,7 +6,7 @@ import { path, assocPath, pathOr, pick } from 'ramda'; import { generateDeviceId, parseUserAgent } from '@openpanel/common/server'; import { getProfileById, getSalts, upsertProfile } from '@openpanel/db'; import { eventsQueue } from '@openpanel/queue'; -import { getRedisCache } from '@openpanel/redis'; +import { getLock } from '@openpanel/redis'; import type { DecrementPayload, IdentifyPayload, @@ -230,12 +230,10 @@ async function track({ const isScreenView = payload.name === 'screen_view'; // this will ensure that we don't have multiple events creating sessions const LOCK_DURATION = 1000; - const locked = await getRedisCache().set( + const locked = await getLock( `request:priority:${currentDeviceId}-${previousDeviceId}:${isScreenView ? 'screen_view' : 'other'}`, 'locked', - 'PX', LOCK_DURATION, - 'NX', ); await eventsQueue.add( @@ -253,7 +251,7 @@ async function track({ geo, currentDeviceId, previousDeviceId, - priority: locked === 'OK', + priority: locked, }, }, { diff --git a/apps/api/src/hooks/deduplicate.hook.ts b/apps/api/src/hooks/deduplicate.hook.ts new file mode 100644 index 00000000..15f2e635 --- /dev/null +++ b/apps/api/src/hooks/deduplicate.hook.ts @@ -0,0 +1,21 @@ +import { getLock } from '@openpanel/redis'; +import fastJsonStableHash from 'fast-json-stable-hash'; +import type { FastifyReply, FastifyRequest } from 'fastify'; + +export async function deduplicateHook( + request: FastifyRequest, + reply: FastifyReply, +) { + if (typeof request.body === 'object') { + const locked = await getLock( + `fastify:deduplicate:${fastJsonStableHash.hash(request.body, 'md5')}`, + '1', + 100, + ); + + if (locked) { + return; + } + } + reply.status(200).send('Duplicated event'); +} diff --git a/apps/api/src/hooks/fix.hook.ts b/apps/api/src/hooks/fix.hook.ts index 31562e9e..f19d7d16 100644 --- a/apps/api/src/hooks/fix.hook.ts +++ b/apps/api/src/hooks/fix.hook.ts @@ -1,14 +1,6 @@ -import type { - FastifyReply, - FastifyRequest, - HookHandlerDoneFunction, -} from 'fastify'; +import type { FastifyRequest } from 'fastify'; -export function fixHook( - request: FastifyRequest, - reply: FastifyReply, - done: HookHandlerDoneFunction, -) { +export async function fixHook(request: FastifyRequest) { const ua = request.headers['user-agent']; // Swift SDK issue: https://github.com/Openpanel-dev/swift-sdk/commit/d588fa761a36a33f3b78eb79d83bfd524e3c7144 if (ua) { @@ -21,5 +13,4 @@ export function fixHook( ); } } - done(); } diff --git a/apps/api/src/hooks/ip.hook.ts b/apps/api/src/hooks/ip.hook.ts index feb01449..6dec9d9e 100644 --- a/apps/api/src/hooks/ip.hook.ts +++ b/apps/api/src/hooks/ip.hook.ts @@ -5,14 +5,9 @@ import type { HookHandlerDoneFunction, } from 'fastify'; -export function ipHook( - request: FastifyRequest, - reply: FastifyReply, - done: HookHandlerDoneFunction, -) { +export async function ipHook(request: FastifyRequest) { const ip = getClientIp(request); if (ip) { request.clientIp = ip; } - done(); } diff --git a/apps/api/src/hooks/request-id.hook.ts b/apps/api/src/hooks/request-id.hook.ts index d391e24c..7d074646 100644 --- a/apps/api/src/hooks/request-id.hook.ts +++ b/apps/api/src/hooks/request-id.hook.ts @@ -4,13 +4,8 @@ import type { HookHandlerDoneFunction, } from 'fastify'; -export function requestIdHook( - request: FastifyRequest, - reply: FastifyReply, - done: HookHandlerDoneFunction, -) { +export async function requestIdHook(request: FastifyRequest) { if (!request.headers['request-id']) { request.headers['request-id'] = request.id; } - done(); } diff --git a/apps/api/src/hooks/request-logging.hook.ts b/apps/api/src/hooks/request-logging.hook.ts index 26c42613..b381673d 100644 --- a/apps/api/src/hooks/request-logging.hook.ts +++ b/apps/api/src/hooks/request-logging.hook.ts @@ -1,8 +1,4 @@ -import type { - FastifyReply, - FastifyRequest, - HookHandlerDoneFunction, -} from 'fastify'; +import type { FastifyReply, FastifyRequest } from 'fastify'; import { path, pick } from 'ramda'; const ignoreLog = ['/healthcheck', '/metrics', '/misc']; @@ -19,16 +15,15 @@ const getTrpcInput = ( } }; -export function requestLoggingHook( +export async function requestLoggingHook( request: FastifyRequest, reply: FastifyReply, - done: HookHandlerDoneFunction, ) { if (ignoreMethods.includes(request.method)) { - return done(); + return; } if (ignoreLog.some((path) => request.url.startsWith(path))) { - return done(); + return; } if (request.url.includes('trpc')) { request.log.info('request done', { @@ -54,5 +49,4 @@ export function requestLoggingHook( body: request.body, }); } - done(); } diff --git a/apps/api/src/hooks/timestamp.hook.ts b/apps/api/src/hooks/timestamp.hook.ts index 86c8788f..7ad0c4c6 100644 --- a/apps/api/src/hooks/timestamp.hook.ts +++ b/apps/api/src/hooks/timestamp.hook.ts @@ -1,14 +1,5 @@ -import type { - FastifyReply, - FastifyRequest, - HookHandlerDoneFunction, -} from 'fastify'; +import type { FastifyRequest } from 'fastify'; -export function timestampHook( - request: FastifyRequest, - reply: FastifyReply, - done: HookHandlerDoneFunction, -) { +export async function timestampHook(request: FastifyRequest) { request.timestamp = Date.now(); - done(); } diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index d615f423..816ee79b 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -1,4 +1,3 @@ -import zlib from 'node:zlib'; import compress from '@fastify/compress'; import cookie from '@fastify/cookie'; import cors, { type FastifyCorsOptions } from '@fastify/cors'; @@ -59,7 +58,7 @@ const startServer = async () => { const fastify = Fastify({ maxParamLength: 15_000, bodyLimit: 1048576 * 500, // 500MB - logger: logger as unknown as FastifyBaseLogger, + loggerInstance: logger as unknown as FastifyBaseLogger, disableRequestLogging: true, genReqId: (req) => req.headers['request-id'] @@ -107,61 +106,26 @@ const startServer = async () => { encodings: ['gzip', 'deflate'], }); - fastify.addContentTypeParser( - 'application/json', - { parseAs: 'buffer' }, - (req, body, done) => { - const isGzipped = req.headers['content-encoding'] === 'gzip'; - - if (isGzipped) { - zlib.gunzip(body, (err, decompressedBody) => { - if (err) { - done(err); - } else { - try { - const json = JSON.parse(decompressedBody.toString()); - done(null, json); - } catch (parseError) { - done(new Error('Invalid JSON')); - } - } - }); - } else { - try { - const json = JSON.parse(body.toString()); - done(null, json); - } catch (parseError) { - done(new Error('Invalid JSON')); - } - } - }, - ); - // Dashboard API - fastify.register((instance, opts, done) => { + fastify.register(async (instance) => { instance.register(cookie, { secret: process.env.COOKIE_SECRET ?? '', hook: 'onRequest', parseOptions: {}, }); - instance.addHook('onRequest', (req, reply, done) => { + instance.addHook('onRequest', async (req) => { if (req.cookies?.session) { - validateSessionToken(req.cookies.session) - .then((session) => { - if (session.session) { - req.session = session; - } - }) - .catch(() => { - req.session = EMPTY_SESSION; - }) - .finally(() => { - done(); - }); + try { + const session = await validateSessionToken(req.cookies.session); + if (session.session) { + req.session = session; + } + } catch (e) { + req.session = EMPTY_SESSION; + } } else { req.session = EMPTY_SESSION; - done(); } }); @@ -184,11 +148,10 @@ const startServer = async () => { instance.register(webhookRouter, { prefix: '/webhook' }); instance.register(oauthRouter, { prefix: '/oauth' }); instance.register(miscRouter, { prefix: '/misc' }); - done(); }); // Public API - fastify.register((instance, opts, done) => { + fastify.register(async (instance) => { instance.register(metricsPlugin, { endpoint: '/metrics' }); instance.register(eventRouter, { prefix: '/event' }); instance.register(profileRouter, { prefix: '/profile' }); @@ -200,7 +163,6 @@ const startServer = async () => { instance.get('/', (_request, reply) => reply.send({ name: 'openpanel sdk api' }), ); - done(); }); fastify.setErrorHandler((error, request, reply) => { diff --git a/apps/api/src/routes/event.router.ts b/apps/api/src/routes/event.router.ts index 8dd644f9..b84a553f 100644 --- a/apps/api/src/routes/event.router.ts +++ b/apps/api/src/routes/event.router.ts @@ -2,9 +2,11 @@ import * as controller from '@/controllers/event.controller'; import type { FastifyPluginCallback } from 'fastify'; import { clientHook } from '@/hooks/client.hook'; +import { deduplicateHook } from '@/hooks/deduplicate.hook'; import { isBotHook } from '@/hooks/is-bot.hook'; -const eventRouter: FastifyPluginCallback = (fastify, opts, done) => { +const eventRouter: FastifyPluginCallback = async (fastify) => { + fastify.addHook('preHandler', deduplicateHook); fastify.addHook('preHandler', clientHook); fastify.addHook('preHandler', isBotHook); @@ -13,7 +15,6 @@ const eventRouter: FastifyPluginCallback = (fastify, opts, done) => { url: '/', handler: controller.postEvent, }); - done(); }; export default eventRouter; diff --git a/apps/api/src/routes/export.router.ts b/apps/api/src/routes/export.router.ts index f986b54d..368d8517 100644 --- a/apps/api/src/routes/export.router.ts +++ b/apps/api/src/routes/export.router.ts @@ -4,7 +4,7 @@ import { activateRateLimiter } from '@/utils/rate-limiter'; import { Prisma } from '@openpanel/db'; import type { FastifyPluginCallback, FastifyRequest } from 'fastify'; -const exportRouter: FastifyPluginCallback = async (fastify, opts, done) => { +const exportRouter: FastifyPluginCallback = async (fastify) => { await activateRateLimiter({ fastify, max: 10, @@ -46,7 +46,6 @@ const exportRouter: FastifyPluginCallback = async (fastify, opts, done) => { url: '/charts', handler: controller.charts, }); - done(); }; export default exportRouter; diff --git a/apps/api/src/routes/import.router.ts b/apps/api/src/routes/import.router.ts index 0dab535b..fbad804d 100644 --- a/apps/api/src/routes/import.router.ts +++ b/apps/api/src/routes/import.router.ts @@ -4,7 +4,7 @@ import type { FastifyPluginCallback, FastifyRequest } from 'fastify'; import { Prisma } from '@openpanel/db'; -const importRouter: FastifyPluginCallback = (fastify, opts, done) => { +const importRouter: FastifyPluginCallback = async (fastify) => { fastify.addHook('preHandler', async (req: FastifyRequest, reply) => { try { const client = await validateImportRequest(req.headers); @@ -34,8 +34,6 @@ const importRouter: FastifyPluginCallback = (fastify, opts, done) => { url: '/events', handler: controller.importEvents, }); - - done(); }; export default importRouter; diff --git a/apps/api/src/routes/live.router.ts b/apps/api/src/routes/live.router.ts index 8c32f235..d9181ef8 100644 --- a/apps/api/src/routes/live.router.ts +++ b/apps/api/src/routes/live.router.ts @@ -2,36 +2,31 @@ import * as controller from '@/controllers/live.controller'; import fastifyWS from '@fastify/websocket'; import type { FastifyPluginCallback } from 'fastify'; -// TODO: `as any` is a workaround since it starts to break after changed module resolution to bundler -// which is needed for @polar/sdk (dont have time to resolve this now) -const liveRouter: FastifyPluginCallback = (fastify, opts, done) => { +const liveRouter: FastifyPluginCallback = async (fastify) => { fastify.register(fastifyWS); - fastify.register((fastify, _, done) => { + fastify.register(async (fastify) => { fastify.get( '/organization/:organizationId', { websocket: true }, - controller.wsOrganizationEvents as any, + controller.wsOrganizationEvents, ); fastify.get( '/visitors/:projectId', { websocket: true }, - controller.wsVisitors as any, + controller.wsVisitors, ); fastify.get( '/events/:projectId', { websocket: true }, - controller.wsProjectEvents as any, + controller.wsProjectEvents, ); fastify.get( '/notifications/:projectId', { websocket: true }, - controller.wsProjectNotifications as any, + controller.wsProjectNotifications, ); - done(); }); - - done(); }; export default liveRouter; diff --git a/apps/api/src/routes/misc.router.ts b/apps/api/src/routes/misc.router.ts index 882f0d5b..4328d084 100644 --- a/apps/api/src/routes/misc.router.ts +++ b/apps/api/src/routes/misc.router.ts @@ -1,7 +1,7 @@ import * as controller from '@/controllers/misc.controller'; import type { FastifyPluginCallback } from 'fastify'; -const miscRouter: FastifyPluginCallback = (fastify, opts, done) => { +const miscRouter: FastifyPluginCallback = async (fastify) => { fastify.route({ method: 'POST', url: '/ping', @@ -25,8 +25,6 @@ const miscRouter: FastifyPluginCallback = (fastify, opts, done) => { url: '/favicon/clear', handler: controller.clearFavicons, }); - - done(); }; export default miscRouter; diff --git a/apps/api/src/routes/oauth-callback.router.ts b/apps/api/src/routes/oauth-callback.router.ts index 5b971972..230ade47 100644 --- a/apps/api/src/routes/oauth-callback.router.ts +++ b/apps/api/src/routes/oauth-callback.router.ts @@ -1,7 +1,7 @@ import * as controller from '@/controllers/oauth-callback.controller'; import type { FastifyPluginCallback } from 'fastify'; -const router: FastifyPluginCallback = (fastify, opts, done) => { +const router: FastifyPluginCallback = async (fastify) => { fastify.route({ method: 'GET', url: '/github/callback', @@ -12,7 +12,6 @@ const router: FastifyPluginCallback = (fastify, opts, done) => { url: '/google/callback', handler: controller.googleCallback, }); - done(); }; export default router; diff --git a/apps/api/src/routes/profile.router.ts b/apps/api/src/routes/profile.router.ts index 6d88c62c..9715a997 100644 --- a/apps/api/src/routes/profile.router.ts +++ b/apps/api/src/routes/profile.router.ts @@ -1,9 +1,11 @@ import * as controller from '@/controllers/profile.controller'; import { clientHook } from '@/hooks/client.hook'; +import { deduplicateHook } from '@/hooks/deduplicate.hook'; import { isBotHook } from '@/hooks/is-bot.hook'; import type { FastifyPluginCallback } from 'fastify'; -const eventRouter: FastifyPluginCallback = (fastify, opts, done) => { +const eventRouter: FastifyPluginCallback = async (fastify) => { + fastify.addHook('preHandler', deduplicateHook); fastify.addHook('preHandler', clientHook); fastify.addHook('preHandler', isBotHook); @@ -24,7 +26,6 @@ const eventRouter: FastifyPluginCallback = (fastify, opts, done) => { url: '/decrement', handler: controller.decrementProfileProperty, }); - done(); }; export default eventRouter; diff --git a/apps/api/src/routes/track.router.ts b/apps/api/src/routes/track.router.ts index 56d98dc4..9bed8818 100644 --- a/apps/api/src/routes/track.router.ts +++ b/apps/api/src/routes/track.router.ts @@ -2,9 +2,11 @@ import { handler } from '@/controllers/track.controller'; import type { FastifyPluginCallback } from 'fastify'; import { clientHook } from '@/hooks/client.hook'; +import { deduplicateHook } from '@/hooks/deduplicate.hook'; import { isBotHook } from '@/hooks/is-bot.hook'; -const trackRouter: FastifyPluginCallback = (fastify, opts, done) => { +const trackRouter: FastifyPluginCallback = (fastify) => { + fastify.addHook('preHandler', deduplicateHook); fastify.addHook('preHandler', clientHook); fastify.addHook('preHandler', isBotHook); @@ -29,8 +31,6 @@ const trackRouter: FastifyPluginCallback = (fastify, opts, done) => { }, }, }); - - done(); }; export default trackRouter; diff --git a/apps/api/src/routes/webhook.router.ts b/apps/api/src/routes/webhook.router.ts index 17d38318..dbe34658 100644 --- a/apps/api/src/routes/webhook.router.ts +++ b/apps/api/src/routes/webhook.router.ts @@ -1,7 +1,7 @@ import * as controller from '@/controllers/webhook.controller'; import type { FastifyPluginCallback } from 'fastify'; -const webhookRouter: FastifyPluginCallback = (fastify, opts, done) => { +const webhookRouter: FastifyPluginCallback = async (fastify) => { fastify.route({ method: 'GET', url: '/slack', @@ -15,7 +15,6 @@ const webhookRouter: FastifyPluginCallback = (fastify, opts, done) => { rawBody: true, }, }); - done(); }; export default webhookRouter; diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index 88882aba..a88d7cf5 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -51,10 +51,10 @@ "@tailwindcss/typography": "^0.5.15", "@tanstack/react-query": "^4.36.1", "@tanstack/react-table": "^8.11.8", - "@trpc/client": "^10.45.1", - "@trpc/next": "^10.45.1", - "@trpc/react-query": "^10.45.1", - "@trpc/server": "^10.45.1", + "@trpc/client": "^10.45.2", + "@trpc/next": "^10.45.2", + "@trpc/react-query": "^10.45.2", + "@trpc/server": "^10.45.2", "@types/d3": "^7.4.3", "bcrypt": "^5.1.1", "bind-event-listener": "^3.0.0", diff --git a/packages/redis/redis.ts b/packages/redis/redis.ts index 2c78a520..e47f9f8c 100644 --- a/packages/redis/redis.ts +++ b/packages/redis/redis.ts @@ -64,3 +64,8 @@ export function getRedisQueue() { return redisQueue; } + +export async function getLock(key: string, value: string, timeout: number) { + const lock = await getRedisCache().set(key, value, 'PX', timeout, 'NX'); + return lock === 'OK'; +} diff --git a/packages/trpc/package.json b/packages/trpc/package.json index 8002a3e1..ff992497 100644 --- a/packages/trpc/package.json +++ b/packages/trpc/package.json @@ -17,8 +17,8 @@ "@openpanel/validation": "workspace:*", "@seventy-seven/sdk": "0.0.0-beta.2", "@trpc-limiter/redis": "^0.0.2", - "@trpc/server": "^10.45.1", - "@trpc/client": "^10.45.1", + "@trpc/server": "^10.45.2", + "@trpc/client": "^10.45.2", "bcrypt": "^5.1.1", "date-fns": "^3.3.1", "mathjs": "^12.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45a85a93..5a293534 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,20 +31,20 @@ importers: apps/api: dependencies: '@fastify/compress': - specifier: ^7.0.3 - version: 7.0.3 + specifier: ^8.0.1 + version: 8.0.1 '@fastify/cookie': - specifier: ^9.3.1 - version: 9.3.1 + specifier: ^11.0.2 + version: 11.0.2 '@fastify/cors': - specifier: ^9.0.0 - version: 9.0.1 + specifier: ^11.0.0 + version: 11.0.0 '@fastify/rate-limit': - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^10.2.2 + version: 10.2.2 '@fastify/websocket': - specifier: ^8.3.1 - version: 8.3.1 + specifier: ^11.0.2 + version: 11.0.2 '@node-rs/argon2': specifier: ^2.0.2 version: 2.0.2 @@ -82,23 +82,26 @@ importers: specifier: workspace:* version: link:../../packages/validation '@trpc/server': - specifier: ^10.45.1 - version: 10.45.1 + specifier: ^10.45.2 + version: 10.45.2 bcrypt: specifier: ^5.1.1 version: 5.1.1 + fast-json-stable-hash: + specifier: ^1.0.3 + version: 1.0.3 fastify: - specifier: ^4.25.2 - version: 4.26.1 + specifier: ^5.2.1 + version: 5.2.1 fastify-metrics: - specifier: ^11.0.0 - version: 11.0.0(fastify@4.26.1) + specifier: ^12.1.0 + version: 12.1.0(fastify@5.2.1) fastify-raw-body: - specifier: ^4.2.1 - version: 4.3.0 + specifier: ^5.0.0 + version: 5.0.0 ico-to-png: - specifier: ^0.2.1 - version: 0.2.1 + specifier: ^0.2.2 + version: 0.2.2 jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 @@ -109,8 +112,8 @@ importers: specifier: ^3.3.0 version: 3.3.0 sharp: - specifier: ^0.33.2 - version: 0.33.2 + specifier: ^0.33.5 + version: 0.33.5 source-map-support: specifier: ^0.5.21 version: 0.5.21 @@ -124,8 +127,8 @@ importers: specifier: ^1.24.0 version: 1.24.0 url-metadata: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -146,11 +149,11 @@ importers: specifier: ^4.0.9 version: 4.0.9 '@types/jsonwebtoken': - specifier: ^9.0.6 - version: 9.0.6 + specifier: ^9.0.9 + version: 9.0.9 '@types/ramda': - specifier: ^0.29.6 - version: 0.29.10 + specifier: ^0.30.2 + version: 0.30.2 '@types/request-ip': specifier: ^0.0.41 version: 0.0.41 @@ -161,8 +164,8 @@ importers: specifier: ^2.3.2 version: 2.3.2 '@types/uuid': - specifier: ^9.0.8 - version: 9.0.8 + specifier: ^10.0.0 + version: 10.0.0 '@types/ws': specifier: ^8.5.14 version: 8.5.14 @@ -299,17 +302,17 @@ importers: specifier: ^8.11.8 version: 8.12.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/client': - specifier: ^10.45.1 - version: 10.45.1(@trpc/server@10.45.1) + specifier: ^10.45.2 + version: 10.45.2(@trpc/server@10.45.2) '@trpc/next': - specifier: ^10.45.1 - version: 10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/react-query@10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.1)(next@14.2.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^10.45.2 + version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@14.2.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/react-query': - specifier: ^10.45.1 - version: 10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^10.45.2 + version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/server': - specifier: ^10.45.1 - version: 10.45.1 + specifier: ^10.45.2 + version: 10.45.2 '@types/d3': specifier: ^7.4.3 version: 7.4.3 @@ -1223,13 +1226,13 @@ importers: version: link:../sdk expo-application: specifier: 5 - 6 - version: 5.3.1(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) + version: 5.3.1(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) expo-constants: specifier: 14 - 17 - version: 15.4.5(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) + version: 15.4.5(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) react-native: specifier: '*' - version: 0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))(react@18.3.1) + version: 0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.3.1) devDependencies: '@openpanel/tsconfig': specifier: workspace:* @@ -1312,13 +1315,13 @@ importers: version: 0.0.0-beta.2 '@trpc-limiter/redis': specifier: ^0.0.2 - version: 0.0.2(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(redis@4.7.0) + version: 0.0.2(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(redis@4.7.0) '@trpc/client': - specifier: ^10.45.1 - version: 10.45.1(@trpc/server@10.45.1) + specifier: ^10.45.2 + version: 10.45.2(@trpc/server@10.45.2) '@trpc/server': - specifier: ^10.45.1 - version: 10.45.1 + specifier: ^10.45.2 + version: 10.45.2 bcrypt: specifier: ^5.1.1 version: 5.1.1 @@ -2359,9 +2362,6 @@ packages: '@emnapi/core@1.3.1': resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} - '@emnapi/runtime@0.45.0': - resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} - '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} @@ -2876,36 +2876,41 @@ packages: resolution: {integrity: sha512-4mDeYIgM3By7X6t5E6eYwLAa+2h4DeZDF7thhzIg6XB76jeEvMwadYAMCFJL/R4AnEBcAUO9+gL0vhy3s+qvZA==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} - '@fastify/accept-negotiator@1.1.0': - resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} - engines: {node: '>=14'} + '@fastify/accept-negotiator@2.0.1': + resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==} - '@fastify/ajv-compiler@3.5.0': - resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==} + '@fastify/ajv-compiler@4.0.2': + resolution: {integrity: sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==} - '@fastify/compress@7.0.3': - resolution: {integrity: sha512-xa9fo5/DgK1s0bkS6xrYgNn8HmofO5tJvbCDk8QuXshSgLd2cFZANv1ox/Qv7zswS7JroHwTlCVv/XGTVO98tg==} + '@fastify/compress@8.0.1': + resolution: {integrity: sha512-yWNfKhvL4orfN45LKCHCo8Fcsbj1kdNgwyShw2xpdHfzPf4A3MESmgSfUm3TCKQwgqDdrPnLfy1E+3I/DVP+BQ==} - '@fastify/cookie@9.3.1': - resolution: {integrity: sha512-h1NAEhB266+ZbZ0e9qUE6NnNR07i7DnNXWG9VbbZ8uC6O/hxHpl+Zoe5sw1yfdZ2U6XhToUGDnzQtWJdCaPwfg==} + '@fastify/cookie@11.0.2': + resolution: {integrity: sha512-GWdwdGlgJxyvNv+QcKiGNevSspMQXncjMZ1J8IvuDQk0jvkzgWWZFNC2En3s+nHndZBGV8IbLwOI/sxCZw/mzA==} - '@fastify/cors@9.0.1': - resolution: {integrity: sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==} + '@fastify/cors@11.0.0': + resolution: {integrity: sha512-41Bx0LVGr2a6DnnhDN/SgfDlTRNZtEs8niPxyoymV6Hw09AIdz/9Rn/0Fpu+pBOs6kviwS44JY2mB8NcU2qSAA==} - '@fastify/error@3.4.1': - resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} + '@fastify/error@4.0.0': + resolution: {integrity: sha512-OO/SA8As24JtT1usTUTKgGH7uLvhfwZPwlptRi2Dp5P4KKmJI3gvsZ8MIHnNwDs4sLf/aai5LzTyl66xr7qMxA==} - '@fastify/fast-json-stringify-compiler@4.3.0': - resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + '@fastify/fast-json-stringify-compiler@5.0.2': + resolution: {integrity: sha512-YdR7gqlLg1xZAQa+SX4sMNzQHY5pC54fu9oC5aYSUqBhyn6fkLkrdtKlpVdCNPlwuUuXA1PjFTEmvMF6ZVXVGw==} - '@fastify/merge-json-schemas@0.1.1': - resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} + '@fastify/forwarded@3.0.0': + resolution: {integrity: sha512-kJExsp4JCms7ipzg7SJ3y8DwmePaELHxKYtg+tZow+k0znUTf3cb+npgyqm8+ATZOdmfgfydIebPDWM172wfyA==} - '@fastify/rate-limit@9.1.0': - resolution: {integrity: sha512-h5dZWCkuZXN0PxwqaFQLxeln8/LNwQwH9popywmDCFdKfgpi4b/HoMH1lluy6P+30CG9yzzpSpwTCIPNB9T1JA==} + '@fastify/merge-json-schemas@0.2.1': + resolution: {integrity: sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==} - '@fastify/websocket@8.3.1': - resolution: {integrity: sha512-hsQYHHJme/kvP3ZS4v/WMUznPBVeeQHHwAoMy1LiN6m/HuPfbdXq1MBJ4Nt8qX1YI+eVbog4MnOsU7MTozkwYA==} + '@fastify/proxy-addr@5.0.0': + resolution: {integrity: sha512-37qVVA1qZ5sgH7KpHkkC4z9SK6StIsIcOmpjvMPXNb3vx2GQxhZocogVYbr2PbbeLCQxYIPDok307xEvRZOzGA==} + + '@fastify/rate-limit@10.2.2': + resolution: {integrity: sha512-45vXZImiYthKlMohF4XoHXYiBXCyRYY+zmtjLZuQrGraW0Zj9hYPYNOIa47012+5A65M0KJQxIVbzYCNP90hcg==} + + '@fastify/websocket@11.0.2': + resolution: {integrity: sha512-1oyJkNSZNJGjo/A5fXvlpEcm1kTBD91nRAN9lA7RNVsVNsyC5DuhOXdNL9/4UawVe7SKvzPT/QVI4RdtE9ylnA==} '@floating-ui/core@1.6.0': resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} @@ -2967,218 +2972,105 @@ packages: resolution: {integrity: sha512-wNw0yQf54j/9KXVWeEOu8G6C5FT5EFlrz4dcmscTkwCvo6fQOLRZa/NbGcqugt0LSFMc0/6/Q5RDWVqDpEn0LQ==} hasBin: true - '@img/sharp-darwin-arm64@0.33.2': - resolution: {integrity: sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [darwin] - '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.2': - resolution: {integrity: sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [darwin] - '@img/sharp-darwin-x64@0.33.5': resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.1': - resolution: {integrity: sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.1': - resolution: {integrity: sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.4': resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.1': - resolution: {integrity: sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - '@img/sharp-libvips-linux-arm64@1.0.4': resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.1': - resolution: {integrity: sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm] - os: [linux] - '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.1': - resolution: {integrity: sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [s390x] - os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.1': - resolution: {integrity: sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.1': - resolution: {integrity: sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.1': - resolution: {integrity: sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.2': - resolution: {integrity: sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.2': - resolution: {integrity: sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm] - os: [linux] - '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.2': - resolution: {integrity: sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [s390x] - os: [linux] - '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.2': - resolution: {integrity: sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.2': - resolution: {integrity: sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.2': - resolution: {integrity: sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.2': - resolution: {integrity: sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [wasm32] - '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.2': - resolution: {integrity: sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [ia32] - os: [win32] - '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.2': - resolution: {integrity: sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [win32] - '@img/sharp-win32-x64@0.33.5': resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5840,33 +5732,33 @@ packages: '@trpc/server': next redis: ^4.6.13 - '@trpc/client@10.45.1': - resolution: {integrity: sha512-nVbAk1xpIiI64WgzXGgfxPOGgHoYvffn1IsjV1D/Ri7DL4BKuo2qtZ7UQ+OuHkzH2M8j4ikSVBDpk545fOdvpw==} + '@trpc/client@10.45.2': + resolution: {integrity: sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==} peerDependencies: - '@trpc/server': 10.45.1 + '@trpc/server': 10.45.2 - '@trpc/next@10.45.1': - resolution: {integrity: sha512-HSuQ0OcKUtt8mcQ4Mz4GQpy5PkNYJNvC9EEHkqTkEGa71BLEPKviyVWaE7biOlxjA0tM0aDOM21id+cRkEpfXA==} + '@trpc/next@10.45.2': + resolution: {integrity: sha512-RSORmfC+/nXdmRY1pQ0AalsVgSzwNAFbZLYHiTvPM5QQ8wmMEHilseCYMXpu0se/TbPt9zVR6Ka2d7O6zxKkXg==} peerDependencies: '@tanstack/react-query': ^4.18.0 - '@trpc/client': 10.45.1 - '@trpc/react-query': 10.45.1 - '@trpc/server': 10.45.1 + '@trpc/client': 10.45.2 + '@trpc/react-query': 10.45.2 + '@trpc/server': 10.45.2 next: '*' react: '>=16.8.0' react-dom: '>=16.8.0' - '@trpc/react-query@10.45.1': - resolution: {integrity: sha512-48OOMpwVjQFUQJqlp9/tW1lqESZg9YEqB5iVci7mYaDzZPEs/YUcV85XKvYzgeW+7K9oShX/JMVce8muON/6uQ==} + '@trpc/react-query@10.45.2': + resolution: {integrity: sha512-BAqb9bGZIscroradlNx+Cc9522R+idY3BOSf5z0jHUtkxdMbjeGKxSSMxxu7JzoLqSIEC+LVzL3VvF8sdDWaZQ==} peerDependencies: '@tanstack/react-query': ^4.18.0 - '@trpc/client': 10.45.1 - '@trpc/server': 10.45.1 + '@trpc/client': 10.45.2 + '@trpc/server': 10.45.2 react: '>=16.8.0' react-dom: '>=16.8.0' - '@trpc/server@10.45.1': - resolution: {integrity: sha512-KOzBEVaHW9IxEedUP9E50y0tYxAuvlzyjn80Bpemw4rcNbT4WtJnhkFPUY+qDJl7Crt3B/oY2qMgSxVWi9toLg==} + '@trpc/server@10.45.2': + resolution: {integrity: sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==} '@turf/boolean-point-in-polygon@6.5.0': resolution: {integrity: sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==} @@ -6081,8 +5973,8 @@ packages: '@types/jsonwebtoken@8.5.9': resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} - '@types/jsonwebtoken@9.0.6': - resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} + '@types/jsonwebtoken@9.0.9': + resolution: {integrity: sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==} '@types/keygrip@1.0.6': resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} @@ -6159,6 +6051,9 @@ packages: '@types/ramda@0.30.1': resolution: {integrity: sha512-aoyF/ADPL6N+/NXXfhPWF+Qj6w1Cql59m9wX0Gi15uyF+bpzXeLd63HPdiTDE2bmLXfNcVufsDPKmbfOrOzTBA==} + '@types/ramda@0.30.2': + resolution: {integrity: sha512-PyzHvjCalm2BRYjAU6nIB3TprYwMNOUY/7P/N8bSzp9W/yM2YrtGtAnnVtaCNSeOZ8DzKyFDvaqQs7LnWwwmBA==} + '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -6234,6 +6129,9 @@ packages: '@types/use-sync-external-store@0.0.3': resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} @@ -6319,8 +6217,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -6391,9 +6289,6 @@ packages: aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - arctic@2.3.0: resolution: {integrity: sha512-ImueY1iKm044nMVxQGsLvzSFLrLsqCIpsvohZprK2l8o3ypXjoSKiMBlxBBdoFpAG0iC78cJ6J/vyLpvdLQlkw==} @@ -6488,8 +6383,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - avvio@8.3.0: - resolution: {integrity: sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==} + avvio@9.1.0: + resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -6984,10 +6879,6 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie-signature@1.2.1: - resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} - engines: {node: '>=6.6.0'} - cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} @@ -7000,6 +6891,10 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -7377,10 +7272,6 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} - engines: {node: '>=8'} - detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -7748,9 +7639,6 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - fast-content-type-parse@1.1.0: - resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} - fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} @@ -7768,8 +7656,11 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} - fast-json-stringify@5.12.0: - resolution: {integrity: sha512-7Nnm9UPa7SfHRbHVA1kJQrGXCRzB7LMlAAqHXQFkEQqueJm1V8owm0FsE/2Do55/4CcdhwiLQERaKomOnKQkyA==} + fast-json-stable-hash@1.0.3: + resolution: {integrity: sha512-iLK3Tq2J/KbiUn/5OHyhxikHqzwFXSM2e803Dp2JtBdQjsCVuZwWvL+WqWXPPRUEuDX4c0kqID1SU84RCfxs3A==} + + fast-json-stringify@6.0.1: + resolution: {integrity: sha512-s7SJE83QKBZwg54dIbD5rCtzOBVD43V1ReWXXYqBgwCwHLYAAT0RQc/FmrQglXqWPpz6omtryJQOau5jI4Nrvg==} fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -7781,27 +7672,27 @@ packages: fast-sha256@1.3.0: resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==} - fast-uri@2.3.0: - resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} fast-xml-parser@4.3.4: resolution: {integrity: sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA==} hasBin: true - fastify-metrics@11.0.0: - resolution: {integrity: sha512-2nv0pzkuRVRuAmW3fR2vh1FQF7sV/mgzOJ8cz3HjUzByudWvx2IOHKnJLWtUohiD1AaI2QxtLQKTDZv/nASBRQ==} + fastify-metrics@12.1.0: + resolution: {integrity: sha512-EpbT+W1jm8kMbkCPvfW4j23y3BZlXGOcO6+75EFTKDxbJIyXbldrFIoVoP0oD4CsqrKeIARvrOjbZNqK5MdRwQ==} peerDependencies: - fastify: '>=4' + fastify: '>=5' - fastify-plugin@4.5.1: - resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} + fastify-plugin@5.0.1: + resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} - fastify-raw-body@4.3.0: - resolution: {integrity: sha512-F4o8ZIMVx4YoxGfwrZys6wyjl40gF3Yv6AWWRy62ozFAyZBSS831/uyyCAqKYw3tR73g180ryG98yih6To1PUQ==} + fastify-raw-body@5.0.0: + resolution: {integrity: sha512-2qfoaQ3BQDhZ1gtbkKZd6n0kKxJISJGM6u/skD9ljdWItAscjXrtZ1lnjr7PavmXX9j4EyCPmBDiIsLn07d5vA==} engines: {node: '>= 10'} - fastify@4.26.1: - resolution: {integrity: sha512-tznA/G55dsxzM5XChBfcvVSloG2ejeeotfPPJSFaWmHyCDVGMpvf3nRNbsCb/JTBF9RmQFBfuujWt3Nphjesng==} + fastify@5.2.1: + resolution: {integrity: sha512-rslrNBF67eg8/Gyn7P2URV8/6pz8kSAscFL4EThZJ8JBMaXacVdVE4hmUcnPNKERl5o/xTiBSLfdowBRhVF1WA==} fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -7858,8 +7749,8 @@ packages: resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} engines: {node: '>=6'} - find-my-way@8.1.0: - resolution: {integrity: sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA==} + find-my-way@9.2.0: + resolution: {integrity: sha512-d3uCir8Hmg7W1Ywp8nKf2lJJYU9Nwinvo+1D39Dn09nz65UKXIxUh7j7K8zeWhxqe1WrkS7FJyON/Q/3lPoc6w==} engines: {node: '>=14'} find-up@3.0.0: @@ -8301,8 +8192,8 @@ packages: hyphenate-style-name@1.0.4: resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - ico-to-png@0.2.1: - resolution: {integrity: sha512-wP2Jmsj9ZMxi5fIv3VrcQ9w7vmUu4r6ocfMgeDwoHkzG50sY/LYsZcXEZypaD4FkMdjGQU9klNVzxQMMF6rYBw==} + ico-to-png@0.2.2: + resolution: {integrity: sha512-LzpFSnb3mq5O0/ONXyZKtZPXTS7S8BFM+Ns4NKDLn6WEoDGxLdjRCaapAfcBPYXdE4J3GSp9UBDVWp5eNqOSVg==} engines: {node: '>=8.6.0'} iconv-lite@0.4.24: @@ -8408,6 +8299,10 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + is-absolute-url@4.0.1: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8772,8 +8667,8 @@ packages: resolution: {integrity: sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==} engines: {node: '>=6.0.0'} - json-schema-ref-resolver@1.0.1: - resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} + json-schema-ref-resolver@2.0.1: + resolution: {integrity: sha512-HG0SIB9X4J8bwbxCbnd5FfPEbcXAJYTi1pBJeP/QPON+w8ovSME8iRG+ElHNxZNX2Qh6eYn1GdzJFS4cDFfx0Q==} json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -8820,8 +8715,8 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - light-my-request@5.11.0: - resolution: {integrity: sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==} + light-my-request@6.6.0: + resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} @@ -9415,8 +9310,8 @@ packages: engines: {node: '>=10'} hasBin: true - mnemonist@0.39.6: - resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} + mnemonist@0.40.0: + resolution: {integrity: sha512-kdd8AFNig2AD5Rkih7EPCXhu/iMvwevQFX/uEiGhZyPZi7fHqOoF4V4kHLpCfysxXMgQ4B52kdPMCwARshKvEg==} module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} @@ -9951,17 +9846,17 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pino-abstract-transport@1.1.0: - resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} - pino-abstract-transport@1.2.0: resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} - pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - pino@8.19.0: - resolution: {integrity: sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==} + pino-std-serializers@7.0.0: + resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + + pino@9.6.0: + resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true pirates@4.0.6: @@ -10119,11 +10014,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@2.3.2: - resolution: {integrity: sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==} - - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} @@ -10136,10 +10028,6 @@ packages: proj4@2.14.0: resolution: {integrity: sha512-fumDL50ThQ3issOLxaLYwv1j4LePEzYleY6vqsX+2uWOcvKzqpzHhtTTH18CvIDg+nf8MYl0/XF6yYyESKDi4w==} - prom-client@15.1.2: - resolution: {integrity: sha512-on3h1iXb04QFLLThrmVYg1SChBQ9N1c+nKAjebBjokBqipddH3uxmOUcEkTnzmJ8Jh/5TSUnUqS40i2QB2dJHQ==} - engines: {node: ^16 || ^18 || >=20} - prom-client@15.1.3: resolution: {integrity: sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==} engines: {node: ^16 || ^18 || >=20} @@ -10247,6 +10135,10 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + rc-resize-observer@1.4.0: resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} peerDependencies: @@ -10711,9 +10603,9 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - ret@0.2.2: - resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} - engines: {node: '>=4'} + ret@0.5.0: + resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} + engines: {node: '>=10'} retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} @@ -10792,8 +10684,8 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} - safe-regex2@2.0.0: - resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} + safe-regex2@4.0.1: + resolution: {integrity: sha512-goqsB+bSlOmVX+CiFX2PFc1OV88j5jvBqIM+DgqrucHnUguAUNtiNOs+aTadq2NqsLQ+TQ3UEVG3gtSFcdlkCg==} safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} @@ -10821,6 +10713,9 @@ packages: secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + secure-json-parse@3.0.2: + resolution: {integrity: sha512-H6nS2o8bWfpFEV6U38sOSjS7bTbdgbCGU9wEM6W14P5H0QOsz94KCusifV44GpHDTu2nqZbuDNhTzu+mjDSw1w==} + seedrandom@3.0.5: resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} @@ -10894,10 +10789,6 @@ packages: shallow-equal@1.2.1: resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==} - sharp@0.33.2: - resolution: {integrity: sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==} - engines: {libvips: '>=8.15.1', node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.33.5: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -10974,8 +10865,8 @@ packages: resolution: {integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==} engines: {node: '>=10.2.0'} - sonic-boom@3.8.0: - resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} + sonic-boom@4.2.0: + resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} sonner@1.4.0: resolution: {integrity: sha512-nvkTsIuOmi9e5Wz5If8ldasJjZNVfwiXYijBi2dbijvTQnQppvMcXTFNxL/NUFWlI2yJ1JX7TREDsg+gYm9WyA==} @@ -11303,8 +11194,8 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thread-stream@2.4.1: - resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==} + thread-stream@3.1.0: + resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} throat@5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} @@ -11581,8 +11472,8 @@ packages: url-join@4.0.0: resolution: {integrity: sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==} - url-metadata@4.1.0: - resolution: {integrity: sha512-Ce6V/XzPUf5/0isAkn8EDLueV7+fDLnVPOf/42gudkKI4GF9q3ddMrROK61bTU+neB+LP33drToW+Fo+rJleMg==} + url-metadata@4.1.1: + resolution: {integrity: sha512-D+xsQvH0ZJEAPgp88yJ2hQ5FLhLOmWJQvu6oMQfFAVG+5QRJC5ovoMaLfyLdVhTlvHkKd31bXBHnVqNZHwsPsQ==} engines: {node: '>=18.0.0'} url-parse@1.5.10: @@ -11774,18 +11665,6 @@ packages: utf-8-validate: optional: true - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - 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 - ws@8.17.1: resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} @@ -12090,31 +11969,12 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - optional: true - - '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.7 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.5)': dependencies: @@ -12126,7 +11986,6 @@ snapshots: resolve: 1.22.8 transitivePeerDependencies: - supports-color - optional: true '@babel/helper-environment-visitor@7.22.20': {} @@ -12172,15 +12031,6 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-module-transforms@7.26.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -12196,20 +12046,12 @@ snapshots: '@babel/helper-plugin-utils@7.22.5': {} - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - optional: true '@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9)': dependencies: @@ -12284,23 +12126,10 @@ snapshots: dependencies: '@babel/types': 7.26.3 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.5)': dependencies: @@ -12308,28 +12137,12 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.5) - optional: true - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.5)': dependencies: @@ -12338,7 +12151,6 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - optional: true '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.9)': dependencies: @@ -12352,25 +12164,18 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-decorators@7.23.9(@babel/core@7.23.9)': + '@babel/plugin-proposal-decorators@7.23.9(@babel/core@7.24.5)': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.9) - - '@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.24.5) '@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.5) - optional: true '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.9)': dependencies: @@ -12383,29 +12188,12 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - optional: true - - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.9)': - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.5)': dependencies: @@ -12416,18 +12204,11 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.5) - '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - optional: true '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.9)': dependencies: @@ -12442,86 +12223,45 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 - optional: true - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - '@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.9)': + '@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.24.5)': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.9)': dependencies: @@ -12533,49 +12273,25 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9)': dependencies: @@ -12587,16 +12303,10 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9)': dependencies: @@ -12607,39 +12317,21 @@ snapshots: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9)': dependencies: @@ -12650,29 +12342,16 @@ snapshots: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9)': dependencies: @@ -12683,39 +12362,18 @@ snapshots: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -12723,14 +12381,6 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.5)': dependencies: @@ -12738,47 +12388,22 @@ snapshots: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.5)': dependencies: @@ -12786,19 +12411,6 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 '@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.5)': dependencies: @@ -12812,90 +12424,45 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.23.9 - '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.23.9 - '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) - optional: true '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.9)': dependencies: @@ -12909,25 +12476,12 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.5) - '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -12935,60 +12489,28 @@ snapshots: '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -12996,7 +12518,6 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color - optional: true '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9)': dependencies: @@ -13012,16 +12533,6 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.25.9 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -13031,15 +12542,6 @@ snapshots: '@babel/helper-validator-identifier': 7.25.9 transitivePeerDependencies: - supports-color - optional: true - - '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.5)': dependencies: @@ -13048,66 +12550,29 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color - optional: true - - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.24.5)': dependencies: @@ -13117,13 +12582,6 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.5)': dependencies: @@ -13131,25 +12589,11 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.5) - '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.5)': dependencies: @@ -13157,38 +12601,17 @@ snapshots: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.5)': dependencies: @@ -13197,63 +12620,31 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.9)': + '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.5)': dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - - '@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.5 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) '@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) - '@babel/types': 7.23.9 '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)': dependencies: @@ -13264,47 +12655,22 @@ snapshots: '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.5) '@babel/types': 7.23.9 - '@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.9)': + '@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.24.5)': dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 - optional: true - - '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-runtime@7.23.9(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color '@babel/plugin-transform-runtime@7.23.9(@babel/core@7.24.5)': dependencies: @@ -13317,61 +12683,32 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true - - '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true '@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9)': dependencies: @@ -13388,143 +12725,29 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.5) - optional: true - - '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.22.5 - optional: true - - '@babel/preset-env@7.23.9(@babel/core@7.23.9)': - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) - core-js-compat: 3.36.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color '@babel/preset-env@7.23.9(@babel/core@7.24.5)': dependencies: @@ -13611,7 +12834,6 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true '@babel/preset-flow@7.23.3(@babel/core@7.23.9)': dependencies: @@ -13620,30 +12842,22 @@ snapshots: '@babel/helper-validator-option': 7.23.5 '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.9) - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.26.3 - esutils: 2.0.3 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.26.3 esutils: 2.0.3 - optional: true - '@babel/preset-react@7.23.3(@babel/core@7.23.9)': + '@babel/preset-react@7.23.3(@babel/core@7.24.5)': dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.5) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.24.5) '@babel/preset-typescript@7.23.3(@babel/core@7.23.9)': dependencies: @@ -13794,11 +13008,6 @@ snapshots: tslib: 2.7.0 optional: true - '@emnapi/runtime@0.45.0': - dependencies: - tslib: 2.7.0 - optional: true - '@emnapi/runtime@1.3.1': dependencies: tslib: 2.7.0 @@ -14034,7 +13243,7 @@ snapshots: mv: 2.1.1 safe-json-stringify: 1.2.0 - '@expo/cli@0.17.5(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))(expo-modules-autolinking@1.10.3)': + '@expo/cli@0.17.5(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))(expo-modules-autolinking@1.10.3)': dependencies: '@babel/runtime': 7.23.9 '@expo/code-signing-certificates': 0.0.5 @@ -14044,7 +13253,7 @@ snapshots: '@expo/env': 0.2.1 '@expo/image-utils': 0.4.1 '@expo/json-file': 8.3.0 - '@expo/metro-config': 0.17.4(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + '@expo/metro-config': 0.17.4(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) '@expo/osascript': 2.1.0 '@expo/package-manager': 1.4.2 '@expo/plist': 0.1.0 @@ -14227,7 +13436,7 @@ snapshots: json5: 2.2.3 write-file-atomic: 2.4.3 - '@expo/metro-config@0.17.4(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))': + '@expo/metro-config@0.17.4(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))': dependencies: '@babel/core': 7.24.5 '@babel/generator': 7.26.3 @@ -14237,7 +13446,7 @@ snapshots: '@expo/env': 0.2.1 '@expo/json-file': 8.3.0 '@expo/spawn-async': 1.7.2 - '@react-native/babel-preset': 0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)) + '@react-native/babel-preset': 0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)) babel-preset-fbjs: 3.4.0(@babel/core@7.24.5) chalk: 4.1.2 debug: 4.3.7 @@ -14329,18 +13538,18 @@ snapshots: '@faker-js/faker@9.0.1': {} - '@fastify/accept-negotiator@1.1.0': {} + '@fastify/accept-negotiator@2.0.1': {} - '@fastify/ajv-compiler@3.5.0': + '@fastify/ajv-compiler@4.0.2': dependencies: ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - fast-uri: 2.3.0 + ajv-formats: 3.0.1(ajv@8.12.0) + fast-uri: 3.0.6 - '@fastify/compress@7.0.3': + '@fastify/compress@8.0.1': dependencies: - '@fastify/accept-negotiator': 1.1.0 - fastify-plugin: 4.5.1 + '@fastify/accept-negotiator': 2.0.1 + fastify-plugin: 5.0.1 mime-db: 1.52.0 minipass: 7.1.2 peek-stream: 1.1.3 @@ -14348,36 +13557,44 @@ snapshots: pumpify: 2.0.1 readable-stream: 4.5.2 - '@fastify/cookie@9.3.1': + '@fastify/cookie@11.0.2': dependencies: - cookie-signature: 1.2.1 - fastify-plugin: 4.5.1 + cookie: 1.0.2 + fastify-plugin: 5.0.1 - '@fastify/cors@9.0.1': + '@fastify/cors@11.0.0': dependencies: - fastify-plugin: 4.5.1 - mnemonist: 0.39.6 + fastify-plugin: 5.0.1 + mnemonist: 0.40.0 - '@fastify/error@3.4.1': {} + '@fastify/error@4.0.0': {} - '@fastify/fast-json-stringify-compiler@4.3.0': + '@fastify/fast-json-stringify-compiler@5.0.2': dependencies: - fast-json-stringify: 5.12.0 + fast-json-stringify: 6.0.1 - '@fastify/merge-json-schemas@0.1.1': + '@fastify/forwarded@3.0.0': {} + + '@fastify/merge-json-schemas@0.2.1': dependencies: - fast-deep-equal: 3.1.3 + dequal: 2.0.3 - '@fastify/rate-limit@9.1.0': + '@fastify/proxy-addr@5.0.0': + dependencies: + '@fastify/forwarded': 3.0.0 + ipaddr.js: 2.2.0 + + '@fastify/rate-limit@10.2.2': dependencies: '@lukeed/ms': 2.0.2 - fastify-plugin: 4.5.1 + fastify-plugin: 5.0.1 toad-cache: 3.7.0 - '@fastify/websocket@8.3.1': + '@fastify/websocket@11.0.2': dependencies: - fastify-plugin: 4.5.1 - ws: 8.16.0 + duplexify: 4.1.3 + fastify-plugin: 5.0.1 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -14502,153 +13719,78 @@ snapshots: - encoding - supports-color - '@img/sharp-darwin-arm64@0.33.2': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.1 - optional: true - '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.33.2': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.1 - optional: true - '@img/sharp-darwin-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.1': - optional: true - '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.1': - optional: true - '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.1': - optional: true - '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.1': - optional: true - '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-s390x@1.0.1': - optional: true - '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.1': - optional: true - '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.1': - optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.1': - optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.2': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.1 - optional: true - '@img/sharp-linux-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm@0.33.2': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.1 - optional: true - '@img/sharp-linux-arm@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.33.2': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.1 - optional: true - '@img/sharp-linux-s390x@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.33.2': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.1 - optional: true - '@img/sharp-linux-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.2': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.1 - optional: true - '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.2': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.1 - optional: true - '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.33.2': - dependencies: - '@emnapi/runtime': 0.45.0 - optional: true - '@img/sharp-wasm32@0.33.5': dependencies: '@emnapi/runtime': 1.3.1 optional: true - '@img/sharp-win32-ia32@0.33.2': - optional: true - '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-x64@0.33.2': - optional: true - '@img/sharp-win32-x64@0.33.5': optional: true @@ -17419,68 +16561,12 @@ snapshots: '@react-native/assets-registry@0.73.1': {} - '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.23.9(@babel/core@7.23.9))': - dependencies: - '@react-native/codegen': 0.73.3(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.23.9(@babel/core@7.24.5))': dependencies: '@react-native/codegen': 0.73.3(@babel/preset-env@7.23.9(@babel/core@7.24.5)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - optional: true - - '@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))': - dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.9) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.9) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-runtime': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) - '@babel/template': 7.23.9 - '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.23.9) - react-refresh: 0.14.0 - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color '@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))': dependencies: @@ -17529,20 +16615,6 @@ snapshots: transitivePeerDependencies: - '@babel/preset-env' - supports-color - optional: true - - '@react-native/codegen@0.73.3(@babel/preset-env@7.23.9(@babel/core@7.23.9))': - dependencies: - '@babel/parser': 7.23.9 - '@babel/preset-env': 7.23.9(@babel/core@7.23.9) - flow-parser: 0.206.0 - glob: 7.2.3 - invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - mkdirp: 0.5.6 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color '@react-native/codegen@0.73.3(@babel/preset-env@7.23.9(@babel/core@7.24.5))': dependencies: @@ -17556,28 +16628,6 @@ snapshots: nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - optional: true - - '@react-native/community-cli-plugin@0.73.17(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))': - dependencies: - '@react-native-community/cli-server-api': 12.3.6 - '@react-native-community/cli-tools': 12.3.6 - '@react-native/dev-middleware': 0.73.8 - '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - chalk: 4.1.2 - execa: 5.1.1 - metro: 0.80.6 - metro-config: 0.80.6 - metro-core: 0.80.6 - node-fetch: 2.7.0 - readline: 1.3.0 - transitivePeerDependencies: - - '@babel/core' - - '@babel/preset-env' - - bufferutil - - encoding - - supports-color - - utf-8-validate '@react-native/community-cli-plugin@0.73.17(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))': dependencies: @@ -17599,7 +16649,6 @@ snapshots: - encoding - supports-color - utf-8-validate - optional: true '@react-native/debugger-frontend@0.73.3': {} @@ -17626,16 +16675,6 @@ snapshots: '@react-native/js-polyfills@0.73.1': {} - '@react-native/metro-babel-transformer@0.73.15(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))': - dependencies: - '@babel/core': 7.23.9 - '@react-native/babel-preset': 0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - hermes-parser: 0.15.0 - nullthrows: 1.1.1 - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - '@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))': dependencies: '@babel/core': 7.24.5 @@ -17645,18 +16684,11 @@ snapshots: transitivePeerDependencies: - '@babel/preset-env' - supports-color - optional: true '@react-native/normalize-color@2.1.0': {} '@react-native/normalize-colors@0.73.2': {} - '@react-native/virtualized-lists@0.73.4(react-native@0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))(react@18.3.1))': - dependencies: - invariant: 2.2.4 - nullthrows: 1.1.1 - react-native: 0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))(react@18.3.1) - '@react-native/virtualized-lists@0.73.4(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))': dependencies: invariant: 2.2.4 @@ -17664,6 +16696,12 @@ snapshots: react-native: 0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0) optional: true + '@react-native/virtualized-lists@0.73.4(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.3.1))': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react-native: 0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.3.1) + '@react-spring/animated@9.7.3(react@18.2.0)': dependencies: '@react-spring/shared': 9.7.3(react@18.2.0) @@ -17890,7 +16928,7 @@ snapshots: dependencies: '@slack/logger': 4.0.0 '@slack/web-api': 7.5.0 - '@types/jsonwebtoken': 9.0.6 + '@types/jsonwebtoken': 9.0.9 '@types/node': 20.14.8 jsonwebtoken: 9.0.2 lodash.isstring: 4.0.1 @@ -18013,42 +17051,42 @@ snapshots: '@tanstack/table-core@8.12.0': {} - '@trpc-limiter/core@1.0.0(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)': + '@trpc-limiter/core@1.0.0(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)': dependencies: - '@trpc/client': 10.45.1(@trpc/server@10.45.1) - '@trpc/server': 10.45.1 + '@trpc/client': 10.45.2(@trpc/server@10.45.2) + '@trpc/server': 10.45.2 - '@trpc-limiter/redis@0.0.2(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(redis@4.7.0)': + '@trpc-limiter/redis@0.0.2(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(redis@4.7.0)': dependencies: - '@trpc-limiter/core': 1.0.0(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1) - '@trpc/client': 10.45.1(@trpc/server@10.45.1) - '@trpc/server': 10.45.1 + '@trpc-limiter/core': 1.0.0(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2) + '@trpc/client': 10.45.2(@trpc/server@10.45.2) + '@trpc/server': 10.45.2 rate-limiter-flexible: 5.0.4 redis: 4.7.0 - '@trpc/client@10.45.1(@trpc/server@10.45.1)': + '@trpc/client@10.45.2(@trpc/server@10.45.2)': dependencies: - '@trpc/server': 10.45.1 + '@trpc/server': 10.45.2 - '@trpc/next@10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/react-query@10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.1)(next@14.2.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@14.2.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@tanstack/react-query': 4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0) - '@trpc/client': 10.45.1(@trpc/server@10.45.1) - '@trpc/react-query': 10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@trpc/server': 10.45.1 + '@trpc/client': 10.45.2(@trpc/server@10.45.2) + '@trpc/react-query': 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@trpc/server': 10.45.2 next: 14.2.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@trpc/react-query@10.45.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.1(@trpc/server@10.45.1))(@trpc/server@10.45.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@tanstack/react-query': 4.36.1(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0))(react@18.2.0) - '@trpc/client': 10.45.1(@trpc/server@10.45.1) - '@trpc/server': 10.45.1 + '@trpc/client': 10.45.2(@trpc/server@10.45.2) + '@trpc/server': 10.45.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@trpc/server@10.45.1': {} + '@trpc/server@10.45.2': {} '@turf/boolean-point-in-polygon@6.5.0': dependencies: @@ -18318,8 +17356,9 @@ snapshots: dependencies: '@types/node': 20.14.8 - '@types/jsonwebtoken@9.0.6': + '@types/jsonwebtoken@9.0.9': dependencies: + '@types/ms': 0.7.34 '@types/node': 20.14.8 '@types/keygrip@1.0.6': {} @@ -18411,6 +17450,10 @@ snapshots: dependencies: types-ramda: 0.30.1 + '@types/ramda@0.30.2': + dependencies: + types-ramda: 0.30.1 + '@types/range-parser@1.2.7': {} '@types/react-dom@18.2.19': @@ -18494,6 +17537,8 @@ snapshots: '@types/use-sync-external-store@0.0.3': {} + '@types/uuid@10.0.0': {} + '@types/uuid@9.0.8': {} '@types/ws@7.4.7': @@ -18574,7 +17619,7 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.12.0): + ajv-formats@3.0.1(ajv@8.12.0): optionalDependencies: ajv: 8.12.0 @@ -18649,8 +17694,6 @@ snapshots: aproba@2.0.0: {} - archy@1.0.0: {} - arctic@2.3.0: dependencies: '@oslojs/crypto': 1.0.1 @@ -18749,14 +17792,10 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - avvio@8.3.0: + avvio@9.1.0: dependencies: - '@fastify/error': 3.4.1 - archy: 1.0.0 - debug: 4.3.4 + '@fastify/error': 4.0.0 fastq: 1.17.1 - transitivePeerDependencies: - - supports-color axios@1.7.7: dependencies: @@ -18770,15 +17809,6 @@ snapshots: dependencies: '@babel/core': 7.23.9 - babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.24.5): dependencies: '@babel/compat-data': 7.23.5 @@ -18787,15 +17817,6 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true - - babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - core-js-compat: 3.36.0 - transitivePeerDependencies: - - supports-color babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.5): dependencies: @@ -18804,14 +17825,6 @@ snapshots: core-js-compat: 3.36.0 transitivePeerDependencies: - supports-color - optional: true - - babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - transitivePeerDependencies: - - supports-color babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.5): dependencies: @@ -18819,34 +17832,26 @@ snapshots: '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.5) transitivePeerDependencies: - supports-color - optional: true babel-plugin-react-native-web@0.18.12: {} babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.23.9): - dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) - transitivePeerDependencies: - - '@babel/core' - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.5): dependencies: '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.5) transitivePeerDependencies: - '@babel/core' - optional: true - babel-preset-expo@10.0.1(@babel/core@7.23.9): + babel-preset-expo@10.0.1(@babel/core@7.24.5): dependencies: - '@babel/plugin-proposal-decorators': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/preset-env': 7.23.9(@babel/core@7.23.9) - '@babel/preset-react': 7.23.3(@babel/core@7.23.9) - '@react-native/babel-preset': 0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)) + '@babel/plugin-proposal-decorators': 7.23.9(@babel/core@7.24.5) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.5) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.5) + '@babel/preset-env': 7.23.9(@babel/core@7.24.5) + '@babel/preset-react': 7.23.3(@babel/core@7.24.5) + '@react-native/babel-preset': 0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)) babel-plugin-react-native-web: 0.18.12 react-refresh: 0.14.0 transitivePeerDependencies: @@ -19388,14 +18393,14 @@ snapshots: cookie-signature@1.0.6: {} - cookie-signature@1.2.1: {} - cookie@0.5.0: {} cookie@0.6.0: {} cookie@0.7.2: {} + cookie@1.0.2: {} + copy-anything@3.0.5: dependencies: is-what: 4.1.16 @@ -19789,8 +18794,6 @@ snapshots: detect-libc@1.0.3: {} - detect-libc@2.0.2: {} - detect-libc@2.0.3: {} detect-node-es@1.1.0: {} @@ -20274,41 +19277,41 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - expo-application@5.3.1(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))): + expo-application@5.3.1(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))): dependencies: - expo: 50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + expo: 50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) - expo-asset@9.0.2(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))): + expo-asset@9.0.2(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))): dependencies: '@react-native/assets-registry': 0.73.1 blueimp-md5: 2.19.0 - expo-constants: 15.4.5(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) - expo-file-system: 16.0.6(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) + expo-constants: 15.4.5(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) + expo-file-system: 16.0.6(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) invariant: 2.2.4 md5-file: 3.2.3 transitivePeerDependencies: - expo - supports-color - expo-constants@15.4.5(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))): + expo-constants@15.4.5(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))): dependencies: '@expo/config': 8.5.4 - expo: 50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + expo: 50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) transitivePeerDependencies: - supports-color - expo-file-system@16.0.6(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))): + expo-file-system@16.0.6(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))): dependencies: - expo: 50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + expo: 50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) - expo-font@11.10.3(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))): + expo-font@11.10.3(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))): dependencies: - expo: 50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + expo: 50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) fontfaceobserver: 2.3.0 - expo-keep-awake@12.8.2(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))): + expo-keep-awake@12.8.2(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))): dependencies: - expo: 50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + expo: 50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) expo-modules-autolinking@1.10.3: dependencies: @@ -20325,19 +19328,19 @@ snapshots: dependencies: invariant: 2.2.4 - expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))): + expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))): dependencies: '@babel/runtime': 7.23.9 - '@expo/cli': 0.17.5(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))(expo-modules-autolinking@1.10.3) + '@expo/cli': 0.17.5(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))(expo-modules-autolinking@1.10.3) '@expo/config': 8.5.4 '@expo/config-plugins': 7.8.4 - '@expo/metro-config': 0.17.4(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))) + '@expo/metro-config': 0.17.4(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))) '@expo/vector-icons': 14.0.0 - babel-preset-expo: 10.0.1(@babel/core@7.23.9) - expo-asset: 9.0.2(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) - expo-file-system: 16.0.6(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) - expo-font: 11.10.3(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) - expo-keep-awake: 12.8.2(expo@50.0.7(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)))) + babel-preset-expo: 10.0.1(@babel/core@7.24.5) + expo-asset: 9.0.2(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) + expo-file-system: 16.0.6(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) + expo-font: 11.10.3(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) + expo-keep-awake: 12.8.2(expo@50.0.7(@babel/core@7.24.5)(@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)))) expo-modules-autolinking: 1.10.3 expo-modules-core: 1.11.9 fbemitter: 3.0.0 @@ -20435,8 +19438,6 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-content-type-parse@1.1.0: {} - fast-decode-uri-component@1.0.1: {} fast-deep-equal@2.0.1: {} @@ -20453,14 +19454,15 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 - fast-json-stringify@5.12.0: + fast-json-stable-hash@1.0.3: {} + + fast-json-stringify@6.0.1: dependencies: - '@fastify/merge-json-schemas': 0.1.1 + '@fastify/merge-json-schemas': 0.2.1 ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - fast-deep-equal: 3.1.3 - fast-uri: 2.3.0 - json-schema-ref-resolver: 1.0.1 + ajv-formats: 3.0.1(ajv@8.12.0) + fast-uri: 3.0.6 + json-schema-ref-resolver: 2.0.1 rfdc: 1.3.1 fast-querystring@1.1.2: @@ -20471,46 +19473,43 @@ snapshots: fast-sha256@1.3.0: {} - fast-uri@2.3.0: {} + fast-uri@3.0.6: {} fast-xml-parser@4.3.4: dependencies: strnum: 1.0.5 - fastify-metrics@11.0.0(fastify@4.26.1): + fastify-metrics@12.1.0(fastify@5.2.1): dependencies: - fastify: 4.26.1 - fastify-plugin: 4.5.1 - prom-client: 15.1.2 + fastify: 5.2.1 + fastify-plugin: 5.0.1 + prom-client: 15.1.3 - fastify-plugin@4.5.1: {} + fastify-plugin@5.0.1: {} - fastify-raw-body@4.3.0: + fastify-raw-body@5.0.0: dependencies: - fastify-plugin: 4.5.1 - raw-body: 2.5.2 + fastify-plugin: 5.0.1 + raw-body: 3.0.0 secure-json-parse: 2.7.0 - fastify@4.26.1: + fastify@5.2.1: dependencies: - '@fastify/ajv-compiler': 3.5.0 - '@fastify/error': 3.4.1 - '@fastify/fast-json-stringify-compiler': 4.3.0 + '@fastify/ajv-compiler': 4.0.2 + '@fastify/error': 4.0.0 + '@fastify/fast-json-stringify-compiler': 5.0.2 + '@fastify/proxy-addr': 5.0.0 abstract-logging: 2.0.1 - avvio: 8.3.0 - fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.12.0 - find-my-way: 8.1.0 - light-my-request: 5.11.0 - pino: 8.19.0 - process-warning: 3.0.0 - proxy-addr: 2.0.7 + avvio: 9.1.0 + fast-json-stringify: 6.0.1 + find-my-way: 9.2.0 + light-my-request: 6.6.0 + pino: 9.6.0 + process-warning: 4.0.1 rfdc: 1.3.1 - secure-json-parse: 2.7.0 - semver: 7.6.0 + secure-json-parse: 3.0.2 + semver: 7.6.3 toad-cache: 3.7.0 - transitivePeerDependencies: - - supports-color fastq@1.17.1: dependencies: @@ -20600,11 +19599,11 @@ snapshots: make-dir: 2.1.0 pkg-dir: 3.0.0 - find-my-way@8.1.0: + find-my-way@9.2.0: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 - safe-regex2: 2.0.0 + safe-regex2: 4.0.1 find-up@3.0.0: dependencies: @@ -21160,7 +20159,7 @@ snapshots: hyphenate-style-name@1.0.4: {} - ico-to-png@0.2.1: + ico-to-png@0.2.2: dependencies: decode-ico: 0.4.1 lodepng: 2.2.0 @@ -21281,6 +20280,8 @@ snapshots: ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} + is-absolute-url@4.0.1: {} is-alphabetical@1.0.4: {} @@ -21592,31 +20593,6 @@ snapshots: jsc-safe-url@0.2.4: {} - jscodeshift@0.14.0(@babel/preset-env@7.23.9(@babel/core@7.23.9)): - dependencies: - '@babel/core': 7.23.9 - '@babel/parser': 7.23.9 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/preset-env': 7.23.9(@babel/core@7.23.9) - '@babel/preset-flow': 7.23.3(@babel/core@7.23.9) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9) - '@babel/register': 7.23.7(@babel/core@7.23.9) - babel-core: 7.0.0-bridge.0(@babel/core@7.23.9) - chalk: 4.1.2 - flow-parser: 0.206.0 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - neo-async: 2.6.2 - node-dir: 0.1.17 - recast: 0.21.5 - temp: 0.8.4 - write-file-atomic: 2.4.3 - transitivePeerDependencies: - - supports-color - jscodeshift@0.14.0(@babel/preset-env@7.23.9(@babel/core@7.24.5)): dependencies: '@babel/core': 7.23.9 @@ -21641,7 +20617,6 @@ snapshots: write-file-atomic: 2.4.3 transitivePeerDependencies: - supports-color - optional: true jsesc@0.5.0: {} @@ -21666,9 +20641,9 @@ snapshots: traverse: 0.6.8 valid-url: 1.0.9 - json-schema-ref-resolver@1.0.1: + json-schema-ref-resolver@2.0.1: dependencies: - fast-deep-equal: 3.1.3 + dequal: 2.0.3 json-schema-traverse@1.0.0: {} @@ -21720,10 +20695,10 @@ snapshots: leven@3.1.0: {} - light-my-request@5.11.0: + light-my-request@6.6.0: dependencies: - cookie: 0.5.0 - process-warning: 2.3.2 + cookie: 1.0.2 + process-warning: 4.0.1 set-cookie-parser: 2.6.0 lighthouse-logger@1.4.2: @@ -22645,7 +21620,7 @@ snapshots: mkdirp@1.0.4: {} - mnemonist@0.39.6: + mnemonist@0.40.0: dependencies: obliterator: 2.0.4 @@ -23200,31 +22175,30 @@ snapshots: pify@4.0.1: {} - pino-abstract-transport@1.1.0: - dependencies: - readable-stream: 4.5.2 - split2: 4.2.0 - pino-abstract-transport@1.2.0: dependencies: readable-stream: 4.5.2 split2: 4.2.0 - pino-std-serializers@6.2.2: {} + pino-abstract-transport@2.0.0: + dependencies: + split2: 4.2.0 - pino@8.19.0: + pino-std-serializers@7.0.0: {} + + pino@9.6.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.3.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.1.0 - pino-std-serializers: 6.2.2 - process-warning: 3.0.0 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.0.0 + process-warning: 4.0.1 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.4.3 - sonic-boom: 3.8.0 - thread-stream: 2.4.1 + sonic-boom: 4.2.0 + thread-stream: 3.1.0 pirates@4.0.6: {} @@ -23380,9 +22354,7 @@ snapshots: process-nextick-args@2.0.1: {} - process-warning@2.3.2: {} - - process-warning@3.0.0: {} + process-warning@4.0.1: {} process@0.11.10: {} @@ -23393,11 +22365,6 @@ snapshots: mgrs: 1.0.0 wkt-parser: 1.4.0 - prom-client@15.1.2: - dependencies: - '@opentelemetry/api': 1.8.0 - tdigest: 0.1.2 - prom-client@15.1.3: dependencies: '@opentelemetry/api': 1.8.0 @@ -23521,6 +22488,13 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + rc-resize-observer@1.4.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.23.9 @@ -23645,55 +22619,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-native@0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))(react@18.3.1): - dependencies: - '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 12.3.6 - '@react-native-community/cli-platform-android': 12.3.6 - '@react-native-community/cli-platform-ios': 12.3.6 - '@react-native/assets-registry': 0.73.1 - '@react-native/codegen': 0.73.3(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9)) - '@react-native/gradle-plugin': 0.73.4 - '@react-native/js-polyfills': 0.73.1 - '@react-native/normalize-colors': 0.73.2 - '@react-native/virtualized-lists': 0.73.4(react-native@0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9(@babel/core@7.23.9))(react@18.3.1)) - abort-controller: 3.0.0 - anser: 1.4.10 - ansi-regex: 5.0.1 - base64-js: 1.5.1 - chalk: 4.1.2 - deprecated-react-native-prop-types: 5.0.0 - event-target-shim: 5.0.1 - flow-enums-runtime: 0.0.6 - invariant: 2.2.4 - jest-environment-node: 29.7.0 - jsc-android: 250231.0.0 - memoize-one: 5.2.1 - metro-runtime: 0.80.6 - metro-source-map: 0.80.6 - mkdirp: 0.5.6 - nullthrows: 1.1.1 - pretty-format: 26.6.2 - promise: 8.3.0 - react: 18.3.1 - react-devtools-core: 4.28.5 - react-refresh: 0.14.0 - react-shallow-renderer: 16.15.0(react@18.3.1) - regenerator-runtime: 0.13.11 - scheduler: 0.24.0-canary-efb381bbf-20230505 - stacktrace-parser: 0.1.10 - whatwg-fetch: 3.6.20 - ws: 6.2.2 - yargs: 17.7.2 - transitivePeerDependencies: - - '@babel/core' - - '@babel/preset-env' - - bufferutil - - encoding - - supports-color - - utf-8-validate - react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.2.0): dependencies: '@jest/create-cache-key-function': 29.7.0 @@ -23744,6 +22669,55 @@ snapshots: - utf-8-validate optional: true + react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.3.1): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native-community/cli': 12.3.6 + '@react-native-community/cli-platform-android': 12.3.6 + '@react-native-community/cli-platform-ios': 12.3.6 + '@react-native/assets-registry': 0.73.1 + '@react-native/codegen': 0.73.3(@babel/preset-env@7.23.9(@babel/core@7.24.5)) + '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5)) + '@react-native/gradle-plugin': 0.73.4 + '@react-native/js-polyfills': 0.73.1 + '@react-native/normalize-colors': 0.73.2 + '@react-native/virtualized-lists': 0.73.4(react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.23.9(@babel/core@7.24.5))(react@18.3.1)) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + base64-js: 1.5.1 + chalk: 4.1.2 + deprecated-react-native-prop-types: 5.0.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 + memoize-one: 5.2.1 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 + mkdirp: 0.5.6 + nullthrows: 1.1.1 + pretty-format: 26.6.2 + promise: 8.3.0 + react: 18.3.1 + react-devtools-core: 4.28.5 + react-refresh: 0.14.0 + react-shallow-renderer: 16.15.0(react@18.3.1) + regenerator-runtime: 0.13.11 + scheduler: 0.24.0-canary-efb381bbf-20230505 + stacktrace-parser: 0.1.10 + whatwg-fetch: 3.6.20 + ws: 6.2.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate + react-path-tooltip@1.0.25(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 @@ -24242,7 +23216,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - ret@0.2.2: {} + ret@0.5.0: {} retry@0.13.1: {} @@ -24329,9 +23303,9 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 - safe-regex2@2.0.0: + safe-regex2@4.0.1: dependencies: - ret: 0.2.2 + ret: 0.5.0 safe-stable-stringify@2.4.3: {} @@ -24358,6 +23332,8 @@ snapshots: secure-json-parse@2.7.0: {} + secure-json-parse@3.0.2: {} + seedrandom@3.0.5: {} selderee@0.11.0: @@ -24438,32 +23414,6 @@ snapshots: shallow-equal@1.2.1: {} - sharp@0.33.2: - dependencies: - color: 4.2.3 - detect-libc: 2.0.2 - semver: 7.6.0 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.2 - '@img/sharp-darwin-x64': 0.33.2 - '@img/sharp-libvips-darwin-arm64': 1.0.1 - '@img/sharp-libvips-darwin-x64': 1.0.1 - '@img/sharp-libvips-linux-arm': 1.0.1 - '@img/sharp-libvips-linux-arm64': 1.0.1 - '@img/sharp-libvips-linux-s390x': 1.0.1 - '@img/sharp-libvips-linux-x64': 1.0.1 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.1 - '@img/sharp-libvips-linuxmusl-x64': 1.0.1 - '@img/sharp-linux-arm': 0.33.2 - '@img/sharp-linux-arm64': 0.33.2 - '@img/sharp-linux-s390x': 0.33.2 - '@img/sharp-linux-x64': 0.33.2 - '@img/sharp-linuxmusl-arm64': 0.33.2 - '@img/sharp-linuxmusl-x64': 0.33.2 - '@img/sharp-wasm32': 0.33.2 - '@img/sharp-win32-ia32': 0.33.2 - '@img/sharp-win32-x64': 0.33.2 - sharp@0.33.5: dependencies: color: 4.2.3 @@ -24489,7 +23439,6 @@ snapshots: '@img/sharp-wasm32': 0.33.5 '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - optional: true shebang-command@1.2.0: dependencies: @@ -24581,7 +23530,7 @@ snapshots: - supports-color - utf-8-validate - sonic-boom@3.8.0: + sonic-boom@4.2.0: dependencies: atomic-sleep: 1.0.0 @@ -24964,7 +23913,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thread-stream@2.4.1: + thread-stream@3.1.0: dependencies: real-require: 0.2.0 @@ -25266,7 +24215,7 @@ snapshots: url-join@4.0.0: {} - url-metadata@4.1.0: + url-metadata@4.1.1: dependencies: cheerio: 1.0.0-rc.12 node-fetch: 3.3.2 @@ -25492,8 +24441,6 @@ snapshots: ws@7.5.9: {} - ws@8.16.0: {} - ws@8.17.1: {} xcode@3.0.1: