From e2d56fb34f37f466e2f2c3b9055cd9f8012bbf93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Wed, 24 Apr 2024 18:26:53 +0200 Subject: [PATCH] update Clerk V5 --- apps/dashboard/package.json | 4 +- .../[projectId]/settings/profile/page.tsx | 2 +- .../src/app/(auth)/login/page.client.tsx | 2 +- apps/dashboard/src/app/(auth)/login/page.tsx | 2 +- .../src/app/(auth)/register/page.client.tsx | 2 +- .../src/app/(auth)/register/page.tsx | 2 +- .../src/app/(auth)/sso-callback/page.tsx | 7 +- apps/dashboard/src/middleware.ts | 23 +- apps/dashboard/src/types/index.ts | 2 + packages/db/package.json | 2 +- .../db/src/services/organization.service.ts | 10 +- packages/db/src/services/project.service.ts | 2 +- packages/db/src/services/user.service.ts | 2 +- packages/trpc/src/routers/user.ts | 18 +- pnpm-lock.yaml | 610 +++++++++--------- 15 files changed, 360 insertions(+), 330 deletions(-) diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index 631e2ffb..eb024e37 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "@baselime/node-opentelemetry": "^0.5.8", - "@clerk/nextjs": "^4.29.7", + "@clerk/nextjs": "^5.0.2", "@clickhouse/client": "^0.2.9", "@hookform/resolvers": "^3.3.4", "@openpanel/common": "workspace:^", @@ -108,8 +108,8 @@ "devDependencies": { "@openpanel/eslint-config": "workspace:*", "@openpanel/prettier-config": "workspace:*", - "@openpanel/tsconfig": "workspace:*", "@openpanel/trpc": "workspace:*", + "@openpanel/tsconfig": "workspace:*", "@prisma/nextjs-monorepo-workaround-plugin": "^5.12.1", "@types/bcrypt": "^5.0.2", "@types/lodash.debounce": "^4.0.9", diff --git a/apps/dashboard/src/app/(app)/[organizationSlug]/[projectId]/settings/profile/page.tsx b/apps/dashboard/src/app/(app)/[organizationSlug]/[projectId]/settings/profile/page.tsx index 9033caea..c2258865 100644 --- a/apps/dashboard/src/app/(app)/[organizationSlug]/[projectId]/settings/profile/page.tsx +++ b/apps/dashboard/src/app/(app)/[organizationSlug]/[projectId]/settings/profile/page.tsx @@ -1,5 +1,5 @@ import PageLayout from '@/app/(app)/[organizationSlug]/[projectId]/page-layout'; -import { auth } from '@clerk/nextjs'; +import { auth } from '@clerk/nextjs/server'; import { getUserById } from '@openpanel/db'; diff --git a/apps/dashboard/src/app/(auth)/login/page.client.tsx b/apps/dashboard/src/app/(auth)/login/page.client.tsx index c896ceca..d5ba9c65 100644 --- a/apps/dashboard/src/app/(auth)/login/page.client.tsx +++ b/apps/dashboard/src/app/(auth)/login/page.client.tsx @@ -1,7 +1,7 @@ 'use client'; +import type { OAuthStrategy } from '@/types'; import { useSignIn } from '@clerk/nextjs'; -import type { OAuthStrategy } from '@clerk/nextjs/dist/types/server'; import { toast } from 'sonner'; import EmailSignUp from './email-sign-in'; diff --git a/apps/dashboard/src/app/(auth)/login/page.tsx b/apps/dashboard/src/app/(auth)/login/page.tsx index 1e8f45cd..1b9019ad 100644 --- a/apps/dashboard/src/app/(auth)/login/page.tsx +++ b/apps/dashboard/src/app/(auth)/login/page.tsx @@ -1,4 +1,4 @@ -import { auth } from '@clerk/nextjs'; +import { auth } from '@clerk/nextjs/server'; import { redirect } from 'next/navigation'; import PageClient from './page.client'; diff --git a/apps/dashboard/src/app/(auth)/register/page.client.tsx b/apps/dashboard/src/app/(auth)/register/page.client.tsx index f7513ced..6239db2e 100644 --- a/apps/dashboard/src/app/(auth)/register/page.client.tsx +++ b/apps/dashboard/src/app/(auth)/register/page.client.tsx @@ -1,7 +1,7 @@ 'use client'; +import type { OAuthStrategy } from '@/types'; import { useSignUp } from '@clerk/nextjs'; -import type { OAuthStrategy } from '@clerk/nextjs/dist/types/server'; import { toast } from 'sonner'; import EmailSignUp from './email-sign-up'; diff --git a/apps/dashboard/src/app/(auth)/register/page.tsx b/apps/dashboard/src/app/(auth)/register/page.tsx index 1e8f45cd..1b9019ad 100644 --- a/apps/dashboard/src/app/(auth)/register/page.tsx +++ b/apps/dashboard/src/app/(auth)/register/page.tsx @@ -1,4 +1,4 @@ -import { auth } from '@clerk/nextjs'; +import { auth } from '@clerk/nextjs/server'; import { redirect } from 'next/navigation'; import PageClient from './page.client'; diff --git a/apps/dashboard/src/app/(auth)/sso-callback/page.tsx b/apps/dashboard/src/app/(auth)/sso-callback/page.tsx index 3a38e6b5..7d069ecf 100644 --- a/apps/dashboard/src/app/(auth)/sso-callback/page.tsx +++ b/apps/dashboard/src/app/(auth)/sso-callback/page.tsx @@ -3,7 +3,12 @@ import { AuthenticateWithRedirectCallback } from '@clerk/nextjs'; export const dynamic = 'force-dynamic'; const SSOCallback = () => { - return ; + return ( + + ); }; export default SSOCallback; diff --git a/apps/dashboard/src/middleware.ts b/apps/dashboard/src/middleware.ts index dec0a1ca..c4875166 100644 --- a/apps/dashboard/src/middleware.ts +++ b/apps/dashboard/src/middleware.ts @@ -1,12 +1,25 @@ -import { authMiddleware } from '@clerk/nextjs'; +import { clerkMiddleware, createRouteMatcher } from '@clerk/nextjs/server'; // This example protects all routes including api/trpc routes // Please edit this to allow other routes to be public as needed. // See https://clerk.com/docs/references/nextjs/auth-middleware for more information about configuring your Middleware -export default authMiddleware({ - publicRoutes: ['/share/overview/:id', '/api/trpc(.*)', '/api/clerk/(.*)?'], - debug: process.env.CLERK_DEBUG ? true : false, -}); +const isPublicRoute = createRouteMatcher([ + '/share/overview/:id', + '/api/clerk/(.*)?', + '/login', + '/register', +]); + +export default clerkMiddleware( + (auth, req) => { + if (!isPublicRoute(req)) { + auth().protect(); + } + }, + { + debug: !!process.env.CLERK_DEBUG, + } +); export const config = { matcher: [ diff --git a/apps/dashboard/src/types/index.ts b/apps/dashboard/src/types/index.ts index 9185365f..013c4bea 100644 --- a/apps/dashboard/src/types/index.ts +++ b/apps/dashboard/src/types/index.ts @@ -7,3 +7,5 @@ export type HtmlProps = Omit< export type IToolTipProps = Omit, 'payload'> & { payload?: T[]; }; + +export type OAuthStrategy = 'oauth_google' | 'oauth_github'; diff --git a/packages/db/package.json b/packages/db/package.json index 4e96ad0c..bc8086b9 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -12,7 +12,7 @@ "with-env": "dotenv -e ../../.env -c --" }, "dependencies": { - "@clerk/nextjs": "^4.29.7", + "@clerk/nextjs": "^5.0.2", "@clickhouse/client": "^1.0.1", "@openpanel/common": "workspace:*", "@openpanel/constants": "workspace:*", diff --git a/packages/db/src/services/organization.service.ts b/packages/db/src/services/organization.service.ts index 9f1b9b0b..4b6d15a8 100644 --- a/packages/db/src/services/organization.service.ts +++ b/packages/db/src/services/organization.service.ts @@ -1,10 +1,10 @@ -import { auth, clerkClient } from '@clerk/nextjs'; import type { Organization, OrganizationInvitation, OrganizationMembership, } from '@clerk/nextjs/dist/types/server'; -import { sort, sortBy } from 'ramda'; +import { auth, clerkClient } from '@clerk/nextjs/server'; +import { sort } from 'ramda'; import type { ProjectAccess } from '../prisma-client'; import { db } from '../prisma-client'; @@ -31,7 +31,7 @@ export async function getCurrentOrganizations() { }); return sort( (a, b) => a.createdAt - b.createdAt, - organizations.map((item) => transformOrganization(item.organization)) + organizations.data.map((item) => transformOrganization(item.organization)) ); } @@ -74,7 +74,7 @@ export async function getInvites(organizationSlug: string) { .getOrganizationInvitationList({ organizationId: org.id, }) - .then((invites) => invites.map(transformInvite)); + .then((invites) => invites.data.map(transformInvite)); } export function transformMember( @@ -112,7 +112,7 @@ export async function getMembers(organizationSlug: string) { }), ]); - return members + return members.data .map((member) => { const projectAccess = access.filter( (item) => item.userId === member.publicUserData?.userId diff --git a/packages/db/src/services/project.service.ts b/packages/db/src/services/project.service.ts index 5b6d4bfc..7a2a7a79 100644 --- a/packages/db/src/services/project.service.ts +++ b/packages/db/src/services/project.service.ts @@ -1,4 +1,4 @@ -import { auth } from '@clerk/nextjs'; +import { auth } from '@clerk/nextjs/server'; import type { Prisma, Project } from '../prisma-client'; import { db } from '../prisma-client'; diff --git a/packages/db/src/services/user.service.ts b/packages/db/src/services/user.service.ts index 8921fe1c..2adee8ec 100644 --- a/packages/db/src/services/user.service.ts +++ b/packages/db/src/services/user.service.ts @@ -1,5 +1,5 @@ -import { auth, clerkClient } from '@clerk/nextjs'; import type { User } from '@clerk/nextjs/dist/types/server'; +import { auth, clerkClient } from '@clerk/nextjs/server'; import { db } from '../prisma-client'; diff --git a/packages/trpc/src/routers/user.ts b/packages/trpc/src/routers/user.ts index a30f47cb..c9b8739f 100644 --- a/packages/trpc/src/routers/user.ts +++ b/packages/trpc/src/routers/user.ts @@ -14,17 +14,11 @@ export const userRouter = createTRPCRouter({ }) ) .mutation(({ input, ctx }) => { - return ( - clerkClient.users - .updateUser(ctx.session.userId, { - firstName: input.firstName, - lastName: input.lastName, - }) - // Typescript issue that is fine for now, - // the properties we need are there - // Will be resolved when we update clerk/nextjs to v5 - // @ts-expect-error - .then(transformUser) - ); + return clerkClient.users + .updateUser(ctx.session.userId, { + firstName: input.firstName, + lastName: input.lastName, + }) + .then(transformUser); }), }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f196ffb8..6103305e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,8 +142,8 @@ importers: specifier: ^0.5.8 version: 0.5.8(@trpc/server@10.45.1) '@clerk/nextjs': - specifier: ^4.29.7 - version: 4.29.12(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.0.2 + version: 5.0.2(eslint@8.56.0)(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@clickhouse/client': specifier: ^0.2.9 version: 0.2.9 @@ -837,8 +837,8 @@ importers: packages/db: dependencies: '@clerk/nextjs': - specifier: ^4.29.7 - version: 4.29.7(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.0.2 + version: 5.0.2(eslint@8.56.0)(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@clickhouse/client': specifier: ^1.0.1 version: 1.0.1 @@ -2949,45 +2949,11 @@ packages: resolution: {integrity: sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw==} dev: false - /@clerk/backend@0.38.1(react@18.2.0): - resolution: {integrity: sha512-Nnr+j2V0RwFp/CFjlp7VenGPACilhAVD2j1c49fxjQUuAWeLd/z/5efb9mp7kgZup8oxpOHoMDjO2ndWY4rPqA==} - engines: {node: '>=14'} - dependencies: - '@clerk/shared': 1.3.1(react@18.2.0) - '@clerk/types': 3.62.0 - '@peculiar/webcrypto': 1.4.1 - '@types/node': 16.18.6 - cookie: 0.5.0 - deepmerge: 4.2.2 - node-fetch-native: 1.0.1 - snakecase-keys: 5.4.4 - tslib: 2.4.1 - transitivePeerDependencies: - - react - dev: false - - /@clerk/backend@0.38.6(react@18.2.0): - resolution: {integrity: sha512-dQJzOrDW24KR2ovYUSoTh2iGX1bK0L4odQ5DFi5HJ3Uam3VlJgXk17CQV9VRnokJ7kfRlO3PVAQ6gxd+hCbx5Q==} - engines: {node: '>=14'} - dependencies: - '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 - '@peculiar/webcrypto': 1.4.1 - '@types/node': 16.18.6 - cookie: 0.5.0 - deepmerge: 4.2.2 - node-fetch-native: 1.0.1 - snakecase-keys: 5.4.4 - tslib: 2.4.1 - transitivePeerDependencies: - - react - dev: false - /@clerk/backend@1.0.0(react@18.2.0): resolution: {integrity: sha512-3HRpSszaRPkIsZtO+es+8qCBLg/aI6JdivhKoDtK0MctxCFXL8pQ7+CdtKgFN2ooDB5gJDzqETGg03Fb7G+QZg==} engines: {node: '>=18.17.0'} dependencies: - '@clerk/shared': 2.0.0(react@18.2.0) + '@clerk/shared': 2.0.0(react-dom@18.2.0)(react@18.2.0) cookie: 0.5.0 snakecase-keys: 5.4.4 tslib: 2.4.1 @@ -2996,62 +2962,37 @@ packages: - react-dom dev: false - /@clerk/clerk-react@4.30.10(react@18.2.0): - resolution: {integrity: sha512-c2X0grf7Vo6LrycvYbVyIyU7Gtyb47mf0/fnQdmF5zL8PIF1Ih5Yn9ZkbNeVjCLQrVRLeSRBgrrEIzlIenbuaQ==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16' + /@clerk/backend@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cfeMmgyvdAVraEun+3ZOgWsv+0cKoloF3lNThjvbshUPh4UIx0WePY28t0qFuuQIXtuyEq9iq8ia8xLwPcbHeA==} + engines: {node: '>=18.17.0'} dependencies: - '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 - react: 18.2.0 - tslib: 2.4.1 - dev: false - - /@clerk/clerk-react@4.30.5(react@18.2.0): - resolution: {integrity: sha512-jWSbgjWW3ny+ctQKpz/c8CwascliDtaa/8FyHX7tqKlV7vFeR9N/AjaZIUKHrbeGpRk+b/RM2xHLoZS4nZ4V6A==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16' - dependencies: - '@clerk/shared': 1.3.1(react@18.2.0) - '@clerk/types': 3.62.0 - react: 18.2.0 - tslib: 2.4.1 - dev: false - - /@clerk/clerk-sdk-node@4.13.14(react@18.2.0): - resolution: {integrity: sha512-ECQEiMi/7xQZx0U9IyFKDazFLS+eyZnah+ZClwjMGDxAA1KR6xF13Vd9mbGzTov7IlvwfsNmUPOSXvjORufvqg==} - engines: {node: '>=14'} - dependencies: - '@clerk/backend': 0.38.6(react@18.2.0) - '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 - '@types/cookies': 0.7.7 - '@types/express': 4.17.14 - '@types/node-fetch': 2.6.2 - camelcase-keys: 6.2.2 - snakecase-keys: 3.2.1 + '@clerk/shared': 2.0.0(react-dom@18.2.0)(react@18.2.0) + cookie: 0.5.0 + snakecase-keys: 5.4.4 tslib: 2.4.1 transitivePeerDependencies: - react + - react-dom dev: false - /@clerk/clerk-sdk-node@4.13.9(react@18.2.0): - resolution: {integrity: sha512-SRATpmPcN5IkdewasiJyvSoKNnNnk+Igb/tpjNV6hM9zS3tbWwJx/haUtR76tTjmloUQemVBl5oVr0hnZTq3kg==} - engines: {node: '>=14'} + /@clerk/clerk-react@5.0.1(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-JMwOtFFYGfEOI7Ux3Hg5QbuSYSUN1srf3rL6ORK6hgNuTbS1Cd24v6XZz3c7xfMo6yL70o870gXi20FecdeYYw==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' dependencies: - '@clerk/backend': 0.38.1(react@18.2.0) - '@clerk/shared': 1.3.1(react@18.2.0) - '@clerk/types': 3.62.0 - '@types/cookies': 0.7.7 - '@types/express': 4.17.14 - '@types/node-fetch': 2.6.2 - camelcase-keys: 6.2.2 - snakecase-keys: 3.2.1 + '@clerk/shared': 2.0.0(react-dom@18.2.0)(react@18.2.0) + '@clerk/types': 4.1.0 + eslint-config-custom: 0.0.0(eslint@8.56.0)(typescript@5.3.3) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) tslib: 2.4.1 transitivePeerDependencies: - - react + - eslint + - eslint-import-resolver-webpack + - supports-color + - typescript dev: false /@clerk/fastify@1.0.0(fastify-plugin@4.5.1)(fastify@4.26.1)(react@18.2.0): @@ -3062,7 +3003,7 @@ packages: fastify-plugin: ^4.5.0 dependencies: '@clerk/backend': 1.0.0(react@18.2.0) - '@clerk/shared': 2.0.0(react@18.2.0) + '@clerk/shared': 2.0.0(react-dom@18.2.0)(react@18.2.0) '@clerk/types': 4.0.0 cookies: 0.8.0 fastify: 4.26.1 @@ -3072,75 +3013,31 @@ packages: - react-dom dev: false - /@clerk/nextjs@4.29.12(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9pB6s4E50OjUjySVhQpSHu9DC0zIGqVJdneMXcL26fk48+U7lq9XCAZEFNIYUVQeMMvEI1elWSgNmi2Xmpr8ug==} - engines: {node: '>=14'} + /@clerk/nextjs@5.0.2(eslint@8.56.0)(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-7FNV7tEzy1xMm+hG/lLT0Dh69xkd009PAZfqMQ9AHbjvrKWOTfUZOVkQTgwO7vUcj2V8DlmEmhFLIxfWie6ezA==} + engines: {node: '>=18.17.0'} peerDependencies: - next: '>=10' - react: ^17.0.2 || ^18.0.0-0 - react-dom: ^17.0.2 || ^18.0.0-0 + next: ^13.5.4 || ^14.0.3 + react: '>=18' + react-dom: '>=18' dependencies: - '@clerk/backend': 0.38.6(react@18.2.0) - '@clerk/clerk-react': 4.30.10(react@18.2.0) - '@clerk/clerk-sdk-node': 4.13.14(react@18.2.0) - '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 + '@clerk/backend': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@clerk/clerk-react': 5.0.1(eslint@8.56.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + '@clerk/shared': 2.0.0(react-dom@18.2.0)(react@18.2.0) + crypto-js: 4.2.0 next: 14.2.1(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) path-to-regexp: 6.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.4.1 + transitivePeerDependencies: + - eslint + - eslint-import-resolver-webpack + - supports-color + - typescript dev: false - /@clerk/nextjs@4.29.7(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-tPvIp4GXCsjcKankLRpPPQGDWmpmlB2tm+p656/OUUmzPMeDnk5Euc86HjSk+5C9BAHVatrveRth6fHa4yzNhQ==} - engines: {node: '>=14'} - peerDependencies: - next: '>=10' - react: ^17.0.2 || ^18.0.0-0 - react-dom: ^17.0.2 || ^18.0.0-0 - dependencies: - '@clerk/backend': 0.38.1(react@18.2.0) - '@clerk/clerk-react': 4.30.5(react@18.2.0) - '@clerk/clerk-sdk-node': 4.13.9(react@18.2.0) - '@clerk/shared': 1.3.1(react@18.2.0) - '@clerk/types': 3.62.0 - next: 14.2.1(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) - path-to-regexp: 6.2.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.4.1 - dev: false - - /@clerk/shared@1.3.1(react@18.2.0): - resolution: {integrity: sha512-nzv4+uA90I/eQp55zfK9a1Po9VgCYlzlNhuZnKqyRsPyJ38l4gpIf3B3qSHHdN0+MTx9cWGFrik1CnpftdOBXQ==} - peerDependencies: - react: '>=16' - peerDependenciesMeta: - react: - optional: true - dependencies: - glob-to-regexp: 0.4.1 - js-cookie: 3.0.1 - react: 18.2.0 - swr: 2.2.0(react@18.2.0) - dev: false - - /@clerk/shared@1.4.1(react@18.2.0): - resolution: {integrity: sha512-3rlZy0Hadnb1dw6x+4MGEC7dpZLlIVY3mZTwWRRS4CILWowVAccwfW84paN2XNlM12lJgMc+w66WNdw19XFtpg==} - peerDependencies: - react: '>=16' - peerDependenciesMeta: - react: - optional: true - dependencies: - glob-to-regexp: 0.4.1 - js-cookie: 3.0.1 - react: 18.2.0 - swr: 2.2.0(react@18.2.0) - dev: false - - /@clerk/shared@2.0.0(react@18.2.0): + /@clerk/shared@2.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-HRbBGhAetOE6gSFd2jlLJTo+BFjuEr9lD1xigtBXdJUnmVngunciikQU2dZ4i/20X7B4VTrofhNpYi9MsCm7dw==} engines: {node: '>=18.17.0'} requiresBuild: true @@ -3156,24 +3053,11 @@ packages: glob-to-regexp: 0.4.1 js-cookie: 3.0.1 react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) std-env: 3.7.0 swr: 2.2.0(react@18.2.0) dev: false - /@clerk/types@3.62.0: - resolution: {integrity: sha512-rjtdPqNJtfayCrqOCi20i46rw7X5yzAiOoh0Dzl7KX8kdBWQn06UxpgREPEp/3gFS2imVFRyXtx+fUGRwOGjaw==} - engines: {node: '>=14'} - dependencies: - csstype: 3.1.1 - dev: false - - /@clerk/types@3.63.1: - resolution: {integrity: sha512-PeZrRzWApJl1BYsT/wQPtEzhDmwfqeMKWuSRcHe3Kh0Itc5Gp7w9HrrKkyMnRuzebVj4z5gX4rwJOmTD/P1DhQ==} - engines: {node: '>=14'} - dependencies: - csstype: 3.1.1 - dev: false - /@clerk/types@4.0.0: resolution: {integrity: sha512-my/uNzHflLYvoLR8RT3LBmYulYGkz+SOVYMdzWt14LpRHajQotnfDSq/GEkfjrBm2HXuZ82GxEDMyYtqHUKv8w==} engines: {node: '>=18.17.0'} @@ -3181,6 +3065,13 @@ packages: csstype: 3.1.1 dev: false + /@clerk/types@4.1.0: + resolution: {integrity: sha512-e9vsD7EdQE0q9mPwPMq1kPtPC9BYGR8BucEoEu+pEyXXD5cdSkzM+WvhUonnTHNzYE/W/X5d1zFDNvCV5YfS5Q==} + engines: {node: '>=18.17.0'} + dependencies: + csstype: 3.1.1 + dev: false + /@clickhouse/client-common@0.2.9: resolution: {integrity: sha512-ecXcegMbT4HYNWtGcfyidW6lNVRqPogbFMY5kfjJmz4IXJ4WZbQMwj2IQgemwFwE7jyia2OEwPIVfw1sNfDHRA==} dev: false @@ -4582,6 +4473,12 @@ packages: resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==} dev: false + /@next/eslint-plugin-next@12.3.4: + resolution: {integrity: sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==} + dependencies: + glob: 7.1.7 + dev: false + /@next/eslint-plugin-next@14.1.0: resolution: {integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==} dependencies: @@ -5128,32 +5025,6 @@ packages: resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} dev: false - /@peculiar/asn1-schema@2.3.8: - resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} - dependencies: - asn1js: 3.0.5 - pvtsutils: 1.3.5 - tslib: 2.6.2 - dev: false - - /@peculiar/json-schema@1.1.12: - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@peculiar/webcrypto@1.4.1: - resolution: {integrity: sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==} - engines: {node: '>=10.12.0'} - dependencies: - '@peculiar/asn1-schema': 2.3.8 - '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.5 - tslib: 2.6.2 - webcrypto-core: 1.7.8 - dev: false - /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -7206,20 +7077,13 @@ packages: dependencies: '@types/connect': 3.4.38 '@types/node': 18.19.17 + dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: '@types/node': 18.19.17 - - /@types/cookies@0.7.7: - resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} - dependencies: - '@types/connect': 3.4.38 - '@types/express': 4.17.21 - '@types/keygrip': 1.0.6 - '@types/node': 18.19.17 - dev: false + dev: true /@types/d3-array@3.2.1: resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -7428,15 +7292,7 @@ packages: '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - - /@types/express@4.17.14: - resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.11 - '@types/serve-static': 1.15.5 - dev: false + dev: true /@types/express@4.17.21: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -7445,6 +7301,7 @@ packages: '@types/express-serve-static-core': 4.17.43 '@types/qs': 6.9.11 '@types/serve-static': 1.15.5 + dev: true /@types/geojson@7946.0.14: resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==} @@ -7471,6 +7328,7 @@ packages: /@types/http-errors@2.0.4: resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -7503,10 +7361,6 @@ packages: resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} dev: false - /@types/keygrip@1.0.6: - resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} - dev: false - /@types/lodash.debounce@4.0.9: resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} dependencies: @@ -7541,25 +7395,16 @@ packages: /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: true /@types/mime@3.0.4: resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + dev: true /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: false - /@types/node-fetch@2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} - dependencies: - '@types/node': 18.19.17 - form-data: 3.0.1 - dev: false - - /@types/node@16.18.6: - resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} - dev: false - /@types/node@18.19.17: resolution: {integrity: sha512-SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng==} dependencies: @@ -7574,6 +7419,7 @@ packages: /@types/qs@6.9.11: resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + dev: true /@types/ramda@0.29.10: resolution: {integrity: sha512-0BzWVKtSEtignlk+XBuK88Il5wzQwbRVfEkzE8iKm02NYHMGQ/9ffB05M+zXhTCqo50DOIAT9pNSJsjFMMG4rQ==} @@ -7583,6 +7429,7 @@ packages: /@types/range-parser@1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true /@types/react-dom@18.2.19: resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} @@ -7619,6 +7466,7 @@ packages: dependencies: '@types/mime': 1.3.5 '@types/node': 18.19.17 + dev: true /@types/serve-static@1.15.5: resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} @@ -7626,6 +7474,7 @@ packages: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 '@types/node': 18.19.17 + dev: true /@types/shimmer@1.0.5: resolution: {integrity: sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==} @@ -7709,6 +7558,26 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -7729,6 +7598,14 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: false + /@typescript-eslint/scope-manager@6.21.0: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -7755,10 +7632,36 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + /@typescript-eslint/types@6.21.0: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -7798,6 +7701,14 @@ packages: - supports-color - typescript + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: false + /@typescript-eslint/visitor-keys@6.21.0: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8147,15 +8058,6 @@ packages: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: false - /asn1js@3.0.5: - resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} - engines: {node: '>=12.0.0'} - dependencies: - pvtsutils: 1.3.5 - pvutils: 1.1.3 - tslib: 2.6.2 - dev: false - /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: false @@ -8667,15 +8569,6 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: false - /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -9201,6 +9094,10 @@ packages: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} dev: false + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false + /crypto-random-string@1.0.0: resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==} engines: {node: '>=4'} @@ -9644,11 +9541,6 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge@4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: false - /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -10165,6 +10057,44 @@ packages: engines: {node: '>=12'} dev: false + /eslint-config-custom@0.0.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-kwCw78yisbgKdJBJ5qooPmpBYDphDfM2oxSROmtfOwBXBwXuRiSV3suO01W3mVLEFpmQZxMWd/qajKpJhkKSug==} + dependencies: + eslint-config-next: 12.3.4(eslint@8.56.0)(typescript@5.3.3) + eslint-config-prettier: 8.10.0(eslint@8.56.0) + eslint-plugin-react: 7.28.0(eslint@8.56.0) + transitivePeerDependencies: + - eslint + - eslint-import-resolver-webpack + - supports-color + - typescript + dev: false + + /eslint-config-next@12.3.4(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 12.3.4 + '@rushstack/eslint-patch': 1.7.2 + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) + eslint-plugin-react: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + typescript: 5.3.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + /eslint-config-next@14.1.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==} peerDependencies: @@ -10190,6 +10120,15 @@ packages: - supports-color dev: false + /eslint-config-prettier@8.10.0(eslint@8.56.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.56.0 + dev: false + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -10218,6 +10157,24 @@ packages: - supports-color dev: false + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) + glob: 7.2.3 + is-glob: 4.0.3 + resolve: 1.22.8 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - supports-color + dev: false + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -10241,6 +10198,36 @@ packages: - supports-color dev: false + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.29.1)(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + dev: false + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} @@ -10271,6 +10258,41 @@ packages: - supports-color dev: false + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.4 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.56.0) + hasown: 2.0.1 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.2 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} @@ -10340,6 +10362,29 @@ packages: eslint: 8.56.0 dev: false + /eslint-plugin-react@7.28.0(eslint@8.56.0): + resolution: {integrity: sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + doctrine: 2.1.0 + eslint: 8.56.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: false + /eslint-plugin-react@7.33.2(eslint@8.56.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} @@ -11359,6 +11404,17 @@ packages: path-is-absolute: 1.0.1 dev: false + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -14363,10 +14419,6 @@ packages: engines: {node: '>=10.5.0'} dev: false - /node-fetch-native@1.0.1: - resolution: {integrity: sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==} - dev: false - /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -15335,17 +15387,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /pvtsutils@1.3.5: - resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} - dependencies: - tslib: 2.6.2 - dev: false - - /pvutils@1.1.3: - resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} - engines: {node: '>=6.0.0'} - dev: false - /qrcode-terminal@0.11.0: resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} hasBin: true @@ -15371,11 +15412,6 @@ packages: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} dev: false - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: false - /ramda@0.29.1: resolution: {integrity: sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==} dev: false @@ -16604,14 +16640,6 @@ packages: tslib: 2.6.2 dev: false - /snakecase-keys@3.2.1: - resolution: {integrity: sha512-CjU5pyRfwOtaOITYv5C8DzpZ8XA/ieRsDpr93HI2r6e3YInC6moZpSQbmUtg8cTk58tq2x3jcG2gv+p1IZGmMA==} - engines: {node: '>=8'} - dependencies: - map-obj: 4.3.0 - to-snake-case: 1.0.0 - dev: false - /snakecase-keys@5.4.4: resolution: {integrity: sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==} engines: {node: '>=12'} @@ -17199,28 +17227,12 @@ packages: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - /to-no-case@1.0.2: - resolution: {integrity: sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==} - dev: false - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - /to-snake-case@1.0.0: - resolution: {integrity: sha512-joRpzBAk1Bhi2eGEYBjukEWHOe/IvclOkiJl3DtA91jV6NwQ3MwXA4FHYeqk8BNp/D8bmi9tcNbRu/SozP0jbQ==} - dependencies: - to-space-case: 1.0.0 - dev: false - - /to-space-case@1.0.0: - resolution: {integrity: sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==} - dependencies: - to-no-case: 1.0.2 - dev: false - /toad-cache@3.7.0: resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==} engines: {node: '>=12'} @@ -17288,6 +17300,10 @@ packages: strip-bom: 3.0.0 dev: false + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + /tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} dev: false @@ -17339,6 +17355,16 @@ packages: - ts-node dev: true + /tsutils@3.21.0(typescript@5.3.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.3.3 + dev: false + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -17906,16 +17932,6 @@ packages: resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} dev: false - /webcrypto-core@1.7.8: - resolution: {integrity: sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==} - dependencies: - '@peculiar/asn1-schema': 2.3.8 - '@peculiar/json-schema': 1.1.12 - asn1js: 3.0.5 - pvtsutils: 1.3.5 - tslib: 2.6.2 - dev: false - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false