From ee0c6ffa4ac40bf0480a332aeb11a02cecdb2788 Mon Sep 17 00:00:00 2001 From: Sylver Date: Mon, 12 Feb 2024 19:04:42 +0800 Subject: [PATCH] chore: eslint with strict type imports --- .vscode/settings.json | 2 +- Dockerfile | 1 + package.json | 2 +- packages/api/{.eslintrc.js => .eslintrc.cjs} | 2 + packages/api/package.json | 30 +- packages/api/src/classes/ExifTransformer.ts | 6 +- packages/api/src/config.ts | 8 +- packages/api/src/helpers/expand-mime.ts | 2 +- packages/api/src/helpers/pagination.ts | 5 +- .../api/src/helpers/resource.entity-base.ts | 5 +- packages/api/src/main.ts | 110 +- packages/api/src/modules/app.controller.ts | 4 +- packages/api/src/modules/app.resolver.ts | 2 +- .../api/src/modules/file/file.controller.ts | 2 +- packages/api/src/modules/file/file.entity.ts | 7 +- packages/api/src/modules/file/file.service.ts | 3 +- .../api/src/modules/link/link.controller.ts | 4 +- .../api/src/modules/paste/paste.controller.ts | 2 +- .../modules/thumbnail/thumbnail.controller.ts | 4 +- .../modules/thumbnail/thumbnail.service.ts | 8 +- .../api/src/modules/user/user.controller.ts | 4 +- packages/api/src/orm.config.ts | 2 - packages/api/src/types/edge.type.ts | 1 - packages/api/src/types/paginated.type.ts | 1 - packages/api/tsconfig.json | 6 +- packages/web/.eslintrc.cjs | 23 + packages/web/.eslintrc.js | 11 - packages/web/codegen.ts | 5 +- packages/web/package.json | 30 +- .../web/src/@generated/introspection.json | 3515 ----------------- packages/web/src/app.tsx | 3 +- packages/web/src/components/avatar.tsx | 3 +- packages/web/src/components/button.tsx | 1 - packages/web/src/components/error.tsx | 2 +- packages/web/src/components/header/header.tsx | 2 +- .../web/src/components/input/checkbox.tsx | 1 - packages/web/src/components/input/input.tsx | 3 +- packages/web/src/components/input/submit.tsx | 3 +- packages/web/src/components/link.tsx | 3 +- packages/web/src/components/skeleton.tsx | 3 +- packages/web/src/components/toast/context.ts | 2 +- packages/web/src/components/warning.tsx | 2 +- .../config-generator/config-generator.tsx | 5 +- .../containers/file-list/cards/file-card.tsx | 4 +- .../containers/file-list/cards/paste-card.tsx | 4 +- .../src/containers/file-list/file-list.tsx | 2 +- .../containers/file-list/missing-preview.tsx | 2 +- packages/web/src/containers/login-form.tsx | 2 +- packages/web/src/hooks/useConfig.tsx | 5 +- packages/web/src/hooks/usePaths.tsx | 1 - packages/web/src/hooks/useQueryState.ts | 6 +- packages/web/src/hooks/useUser.tsx | 8 +- packages/web/src/pages/+Page.tsx | 2 +- packages/web/src/pages/dashboard/+Page.tsx | 2 +- .../web/src/pages/dashboard/mfa/+Page.tsx | 5 +- .../src/pages/dashboard/preferences/+Page.tsx | 6 +- packages/web/src/pages/file/@fileId/+Page.tsx | 4 +- .../src/pages/invite/@inviteToken/+Page.tsx | 7 +- packages/web/src/pages/login/+Page.tsx | 3 +- packages/web/src/pages/paste/+Page.tsx | 4 +- .../web/src/pages/paste/@pasteId/+Page.tsx | 7 +- packages/web/src/pages/shorten/+Page.tsx | 5 +- packages/web/src/renderer/+config.h.ts | 2 +- packages/web/src/renderer/+onRenderClient.tsx | 4 +- packages/web/src/renderer/+onRenderHtml.tsx | 7 +- packages/web/src/renderer/cache.ts | 5 +- packages/web/src/renderer/prepass.ts | 4 +- packages/web/src/renderer/types.ts | 5 +- packages/web/src/renderer/usePageContext.tsx | 3 +- packages/web/src/server/index.ts | 19 +- packages/web/tsconfig.json | 8 +- packages/web/vite.config.ts | 10 +- pnpm-lock.yaml | 1601 ++++---- turbo.json | 42 +- 74 files changed, 1065 insertions(+), 4564 deletions(-) rename packages/api/{.eslintrc.js => .eslintrc.cjs} (73%) create mode 100644 packages/web/.eslintrc.cjs delete mode 100644 packages/web/.eslintrc.js delete mode 100644 packages/web/src/@generated/introspection.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 0f729b5..69d6e3a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,7 +4,7 @@ "npm.scriptExplorerExclude": ["^((?!watch|generate:watch).)*$"], "eslint.workingDirectories": [ { - "pattern": "./{packages,apps}/*" + "pattern": "./packages/*" } ], "files.associations": { diff --git a/Dockerfile b/Dockerfile index 8e1d8d5..d7f8652 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ RUN npm i -g pnpm WORKDIR /usr/src/micro +COPY patches patches COPY pnpm-lock.yaml pnpm-workspace.yaml ./ RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \ pnpm fetch diff --git a/package.json b/package.json index 0716c0e..80ce5ab 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "syncpack": "^12.3.0", - "turbo": "1.11.3", + "turbo": "1.12.3", "typescript": "^5.3.3" }, "packageManager": "pnpm@7.0.0" diff --git a/packages/api/.eslintrc.js b/packages/api/.eslintrc.cjs similarity index 73% rename from packages/api/.eslintrc.js rename to packages/api/.eslintrc.cjs index d696cbc..b93d395 100644 --- a/packages/api/.eslintrc.js +++ b/packages/api/.eslintrc.cjs @@ -5,5 +5,7 @@ module.exports = { }, rules: { 'unicorn/no-abusive-eslint-disable': 'off', + 'unicorn/filename-case': 'off', + 'import/no-default-export': 'off', }, }; diff --git a/packages/api/package.json b/packages/api/package.json index 5dffd41..c8c55de 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -26,24 +26,24 @@ "@mikro-orm/migrations": "^5.9.7", "@mikro-orm/nestjs": "^5.2.3", "@mikro-orm/postgresql": "^5.9.7", - "@nestjs/common": "^10.3.0", - "@nestjs/core": "^10.3.0", - "@nestjs/graphql": "^12.0.11", + "@nestjs/common": "^10.3.2", + "@nestjs/core": "^10.3.2", + "@nestjs/graphql": "^12.1.1", "@nestjs/jwt": "^10.2.0", - "@nestjs/mercurius": "^12.0.11", + "@nestjs/mercurius": "^12.1.1", "@nestjs/passport": "^10.0.3", - "@nestjs/platform-fastify": "^10.3.0", - "@nestjs/schedule": "^4.0.0", + "@nestjs/platform-fastify": "^10.3.2", + "@nestjs/schedule": "^4.0.1", "@ryanke/venera": "^1.0.5", "bcryptjs": "^2.4.3", "class-transformer": "^0.5.1", "class-validator": "^0.14.0", - "fastify": "^4.25.2", + "fastify": "^4.26.0", "fluent-ffmpeg": "^2.1.2", "graphql": "^16.8.1", "mercurius": "^13.3.3", "mime-types": "^2.1.35", - "nodemailer": "^6.9.8", + "nodemailer": "^6.9.9", "otplib": "^12.0.1", "passport": "^0.7.0", "passport-jwt": "^4.0.1", @@ -55,7 +55,7 @@ "devDependencies": { "@atlasbot/configs": "^10.5.15", "@mikro-orm/cli": "^5.9.7", - "@swc/core": "^1.3.102", + "@swc/core": "^1.4.0", "@types/bcryptjs": "^2.4.6", "@types/bytes": "^3.1.4", "@types/dedent": "^0.7.2", @@ -63,7 +63,7 @@ "@types/luxon": "^3.4.0", "@types/mime-types": "^2.1.4", "@types/ms": "^0.7.34", - "@types/node": "^20.10.6", + "@types/node": "^20.11.17", "@types/nodemailer": "^6.4.14", "@types/passport-jwt": "^4.0.0", "@types/utf-8-validate": "^5.0.2", @@ -72,21 +72,21 @@ "content-range": "^2.0.2", "dedent": "^1.5.1", "escape-string-regexp": "^5.0.0", - "file-type": "^18.7.0", + "file-type": "^19.0.0", "handlebars": "^4.7.8", "istextorbinary": "^9.5.0", "luxon": "^3.4.4", "ms": "^3.0.0-canary.1", - "nanoid": "^5.0.4", + "nanoid": "^5.0.5", "normalize-url": "^8.0.0", "pretty-bytes": "^6.1.1", "reflect-metadata": "^0.2.1", "ts-node": "^10.9.2", - "tsup": "^8.0.1", + "tsup": "^8.0.2", "typescript": "^5.3.3", - "vitest": "^1.1.3", + "vitest": "^1.2.2", "zod": "^3.22.4", - "zod-validation-error": "^2.1.0" + "zod-validation-error": "^3.0.0" }, "mikro-orm": { "useTsNode": true, diff --git a/packages/api/src/classes/ExifTransformer.ts b/packages/api/src/classes/ExifTransformer.ts index 6ca0505..bfb696a 100644 --- a/packages/api/src/classes/ExifTransformer.ts +++ b/packages/api/src/classes/ExifTransformer.ts @@ -11,8 +11,8 @@ import { Transform } from 'stream'; export class ExifTransformer extends Transform { private static readonly app1Marker = Buffer.from('ffe1', 'hex'); private static readonly exifMarker = Buffer.from('457869660000', 'hex'); // Exif\0\0 - private static readonly xmpMarker = Buffer.from('http://ns.adobe.com/xap', 'utf-8'); - private static readonly flirMarker = Buffer.from('FLIR', 'utf-8'); + private static readonly xmpMarker = Buffer.from('http://ns.adobe.com/xap', 'utf8'); + private static readonly flirMarker = Buffer.from('FLIR', 'utf8'); private static readonly maxMarkerLength = Math.max( ExifTransformer.exifMarker.length, ExifTransformer.xmpMarker.length, @@ -48,7 +48,7 @@ export class ExifTransformer extends Transform { // no app1 in the current pendingChunk if (app1Start === -1) { // if last byte is ff, wait for more - if (!atEnd && pendingChunk[pendingChunk.length - 1] === ExifTransformer.app1Marker[0]) { + if (!atEnd && pendingChunk.at(-1) === ExifTransformer.app1Marker[0]) { if (chunk) this.pending.push(chunk); return; } diff --git a/packages/api/src/config.ts b/packages/api/src/config.ts index 95c35b7..3682708 100644 --- a/packages/api/src/config.ts +++ b/packages/api/src/config.ts @@ -80,7 +80,7 @@ const enhanceHost = (host: z.infer['hosts'][0]) => { }; export const config = result.data as Omit, 'hosts'>; -export const hosts = result.data.hosts.map(enhanceHost); +export const hosts = result.data.hosts.map((host) => enhanceHost(host)); export const rootHost = hosts[0]; if (rootHost.isWildcard) { @@ -92,9 +92,9 @@ if (disallowed.has(config.secret.toLowerCase())) { const token = randomBytes(24).toString('hex'); throw new Error( dedent` - ${c.redBright.bold('Do not use the default secret.')} - Please generate a random, secure secret or you risk anyone being able to impersonate you. - If you're lazy, here is a random secret: ${c.underline(token)} + ${c.redBright.bold('Do not use the default secret.')} + Please generate a random, secure secret or you risk anyone being able to impersonate you. + If you're lazy, here is a random secret: ${c.underline(token)} `, ); } diff --git a/packages/api/src/helpers/expand-mime.ts b/packages/api/src/helpers/expand-mime.ts index e2434e1..dd0ab4a 100644 --- a/packages/api/src/helpers/expand-mime.ts +++ b/packages/api/src/helpers/expand-mime.ts @@ -41,7 +41,7 @@ export const expandMime = (input: string | string[]) => { if (!Array.isArray(input)) input = [input]; const output: string[] = []; for (const mimeType of input) { - const alias = MIME_MAP.get(mimeType.replace(WILDCARD_REGEX, '')); + const alias = MIME_MAP.get(mimeType.replaceAll(WILDCARD_REGEX, '')); if (alias) { output.push(...alias); continue; diff --git a/packages/api/src/helpers/pagination.ts b/packages/api/src/helpers/pagination.ts index ee56939..f223167 100644 --- a/packages/api/src/helpers/pagination.ts +++ b/packages/api/src/helpers/pagination.ts @@ -18,8 +18,7 @@ export function parseCursor(cursor: string) { export function paginate(items: T[], total: number, offset: number): Paginated { const edges: Edge[] = []; - for (let itemIndex = 0; itemIndex < items.length; itemIndex++) { - const item = items[itemIndex]; + for (const [itemIndex, item] of items.entries()) { const cursor = createCursor(offset + itemIndex); edges.push({ cursor: cursor, @@ -31,7 +30,7 @@ export function paginate(items: T[], total: number, offset: number): Paginate edges: edges, totalCount: total, pageInfo: { - endCursor: edges[0] ? edges[edges.length - 1].cursor : undefined, + endCursor: edges[0] ? edges.at(-1)!.cursor : undefined, startCursor: edges[0] ? edges[0].cursor : undefined, hasPreviousPage: offset > 0, hasNextPage: offset + items.length < total, diff --git a/packages/api/src/helpers/resource.entity-base.ts b/packages/api/src/helpers/resource.entity-base.ts index 1219d81..0caee31 100644 --- a/packages/api/src/helpers/resource.entity-base.ts +++ b/packages/api/src/helpers/resource.entity-base.ts @@ -1,5 +1,4 @@ -/* eslint-disable sonarjs/no-duplicate-string */ -import type { IdentifiedReference } from '@mikro-orm/core'; +import type { Ref } from '@mikro-orm/core'; import { BeforeCreate, Entity, Property, type EventArgs } from '@mikro-orm/core'; import { ObjectType } from '@nestjs/graphql'; import type { FastifyRequest } from 'fastify'; @@ -14,7 +13,7 @@ export abstract class Resource { @Property({ nullable: true }) hostname?: string; - abstract owner?: IdentifiedReference; + abstract owner?: Ref; abstract getPaths(): ResourceLocations; getUrls() { diff --git a/packages/api/src/main.ts b/packages/api/src/main.ts index 0159f1b..a787ef0 100644 --- a/packages/api/src/main.ts +++ b/packages/api/src/main.ts @@ -11,64 +11,56 @@ import { migrate } from './migrate.js'; import { AppModule } from './modules/app.module.js'; import { HostGuard } from './modules/host/host.guard.js'; -async function bootstrap() { - await migrate(); +await migrate(); - const logger = new Logger('bootstrap'); - const server = fastify({ - trustProxy: process.env.TRUST_PROXY === 'true', - maxParamLength: 500, - bodyLimit: config.uploadLimit, - }); - - const adapter = new FastifyAdapter(server as any); - const app = await NestFactory.create(AppModule, adapter); - app.useGlobalGuards(new HostGuard()); - app.useGlobalPipes( - new ValidationPipe({ - whitelist: true, - forbidNonWhitelisted: true, - forbidUnknownValues: true, - exceptionFactory(errors) { - // without this, nestjs won't include validation errors in the graphql response, - // just a blank bad request error, which is just a little confusing. thanks nestjs! - const formattedErrors = errors.map((error) => { - if (error.constraints) { - const constraints = Object.values(error.constraints); - if (constraints[0]) return constraints.join(', '); - } - - return error.toString(); - }); - - return new BadRequestException(formattedErrors.join('\n')); - }, - transformOptions: { - enableImplicitConversion: true, - }, - }) - ); - - await app.register(fastifyCookie as any); - await app.register(fastifyHelmet.default as any); - await app.register(fastifyMultipart.default as any, { - limits: { - fieldNameSize: 100, - fieldSize: 100, - fields: 0, - files: 1, - headerPairs: 20, - }, - }); - - await app.listen(8080, '0.0.0.0', (error, address) => { - if (error) throw error; - logger.log(`Listening at ${address}`); - }); -} - -// top-level await is not supported by ncc -bootstrap().catch((error) => { - console.error(error); - process.exit(1); +const logger = new Logger('bootstrap'); +const server = fastify({ + trustProxy: process.env.TRUST_PROXY === 'true', + maxParamLength: 500, + bodyLimit: config.uploadLimit, +}); + +const adapter = new FastifyAdapter(server as any); +const app = await NestFactory.create(AppModule, adapter); +app.useGlobalGuards(new HostGuard()); +app.useGlobalPipes( + new ValidationPipe({ + whitelist: true, + forbidNonWhitelisted: true, + forbidUnknownValues: true, + exceptionFactory(errors) { + // without this, nestjs won't include validation errors in the graphql response, + // just a blank bad request error, which is just a little confusing. thanks nestjs! + const formattedErrors = errors.map((error) => { + if (error.constraints) { + const constraints = Object.values(error.constraints); + if (constraints[0]) return constraints.join(', '); + } + + return error.toString(); + }); + + return new BadRequestException(formattedErrors.join('\n')); + }, + transformOptions: { + enableImplicitConversion: true, + }, + }), +); + +await app.register(fastifyCookie as any); +await app.register(fastifyHelmet.default as any); +await app.register(fastifyMultipart.default as any, { + limits: { + fieldNameSize: 100, + fieldSize: 100, + fields: 0, + files: 1, + headerPairs: 20, + }, +}); + +await app.listen(8080, '0.0.0.0', (error, address) => { + if (error) throw error; + logger.log(`Listening at ${address}`); }); diff --git a/packages/api/src/modules/app.controller.ts b/packages/api/src/modules/app.controller.ts index 6d31682..e749bc6 100644 --- a/packages/api/src/modules/app.controller.ts +++ b/packages/api/src/modules/app.controller.ts @@ -1,9 +1,9 @@ import { Controller, Get, Req, UseGuards } from '@nestjs/common'; -import type { FastifyRequest } from 'fastify'; import { config, hosts, rootHost } from '../config.js'; import { UserId } from './auth/auth.decorators.js'; import { OptionalJWTAuthGuard } from './auth/guards/optional-jwt.guard.js'; import { UserService } from './user/user.service.js'; +import { type FastifyRequest } from 'fastify'; @Controller() export class AppController { @@ -23,7 +23,7 @@ export class AppController { return { inquiries: config.inquiries, uploadLimit: config.uploadLimit, - allowTypes: config.allowTypes ? [...config.allowTypes?.values()] : undefined, + allowTypes: config.allowTypes ? [...config.allowTypes.values()] : undefined, email: !!config.email, rootHost: { url: rootHost.url, diff --git a/packages/api/src/modules/app.resolver.ts b/packages/api/src/modules/app.resolver.ts index c8910b8..8e8fd6e 100644 --- a/packages/api/src/modules/app.resolver.ts +++ b/packages/api/src/modules/app.resolver.ts @@ -25,7 +25,7 @@ export class AppResolver { return { inquiriesEmail: config.inquiries, uploadLimit: config.uploadLimit, - allowTypes: config.allowTypes ? [...config.allowTypes?.values()] : [], + allowTypes: config.allowTypes ? [...config.allowTypes.values()] : [], requireEmails: !!config.email, rootHost: this.filterHost(rootHost), currentHost: this.filterHost(currentHost), diff --git a/packages/api/src/modules/file/file.controller.ts b/packages/api/src/modules/file/file.controller.ts index 6ab7d44..a84b53a 100644 --- a/packages/api/src/modules/file/file.controller.ts +++ b/packages/api/src/modules/file/file.controller.ts @@ -14,7 +14,7 @@ import { Res, UseGuards, } from '@nestjs/common'; -import type { FastifyReply, FastifyRequest } from 'fastify'; +import { type FastifyReply, type FastifyRequest } from 'fastify'; import { rootHost } from '../../config.js'; import { UserId } from '../auth/auth.decorators.js'; import { JWTAuthGuard } from '../auth/guards/jwt.guard.js'; diff --git a/packages/api/src/modules/file/file.entity.ts b/packages/api/src/modules/file/file.entity.ts index 38d724d..b1665f4 100644 --- a/packages/api/src/modules/file/file.entity.ts +++ b/packages/api/src/modules/file/file.entity.ts @@ -72,8 +72,13 @@ export class File extends Resource { } getDisplayName() { + if (this.name) return this.name; const extension = this.getExtension(); - return this.name ? this.name : extension ? `${this.id}.${extension}` : this.id; + if (extension) { + return `${this.id}.${extension}`; + } + + return this.id; } getPaths() { diff --git a/packages/api/src/modules/file/file.service.ts b/packages/api/src/modules/file/file.service.ts index 10fbe1b..2504461 100644 --- a/packages/api/src/modules/file/file.service.ts +++ b/packages/api/src/modules/file/file.service.ts @@ -118,8 +118,9 @@ export class FileService implements OnApplicationBootstrap { uploadStream = uploadStream.pipe(transformer).pipe(new PassThrough()); break; } - default: + default: { throw new Error(`Unknown or unsupported conversion ${fromGroup} to ${toGroup}`); + } } } diff --git a/packages/api/src/modules/link/link.controller.ts b/packages/api/src/modules/link/link.controller.ts index f897073..09a13ef 100644 --- a/packages/api/src/modules/link/link.controller.ts +++ b/packages/api/src/modules/link/link.controller.ts @@ -1,7 +1,7 @@ import { InjectRepository } from '@mikro-orm/nestjs'; import { EntityRepository } from '@mikro-orm/postgresql'; import { Controller, Get, Param, Request, Res } from '@nestjs/common'; -import type { FastifyReply, FastifyRequest } from 'fastify'; +import { type FastifyReply, type FastifyRequest } from 'fastify'; import { Link } from './link.entity.js'; import { LinkService } from './link.service.js'; @@ -9,7 +9,7 @@ import { LinkService } from './link.service.js'; export class LinkController { constructor( @InjectRepository(Link) private readonly linkRepo: EntityRepository, - private readonly linkService: LinkService + private readonly linkService: LinkService, ) {} @Get('link/:id') diff --git a/packages/api/src/modules/paste/paste.controller.ts b/packages/api/src/modules/paste/paste.controller.ts index cf877b1..b71abda 100644 --- a/packages/api/src/modules/paste/paste.controller.ts +++ b/packages/api/src/modules/paste/paste.controller.ts @@ -1,5 +1,5 @@ import { Controller, Get, Param, Req } from '@nestjs/common'; -import type { FastifyRequest } from 'fastify'; +import { type FastifyRequest } from 'fastify'; import { PasteService } from './paste.service.js'; @Controller('paste') diff --git a/packages/api/src/modules/thumbnail/thumbnail.controller.ts b/packages/api/src/modules/thumbnail/thumbnail.controller.ts index 2b882fb..103dcd9 100644 --- a/packages/api/src/modules/thumbnail/thumbnail.controller.ts +++ b/packages/api/src/modules/thumbnail/thumbnail.controller.ts @@ -1,5 +1,5 @@ import { Controller, Get, Param, Req, Res } from '@nestjs/common'; -import type { FastifyReply, FastifyRequest } from 'fastify'; +import { type FastifyReply, type FastifyRequest } from 'fastify'; import { ThumbnailService } from './thumbnail.service.js'; @Controller() @@ -10,7 +10,7 @@ export class ThumbnailController { async getThumbnailContent( @Param('fileId') fileId: string, @Req() request: FastifyRequest, - @Res() reply: FastifyReply + @Res() reply: FastifyReply, ) { return this.thumbnailService.sendThumbnail(fileId, request, reply); } diff --git a/packages/api/src/modules/thumbnail/thumbnail.service.ts b/packages/api/src/modules/thumbnail/thumbnail.service.ts index 65bd247..bb48fab 100644 --- a/packages/api/src/modules/thumbnail/thumbnail.service.ts +++ b/packages/api/src/modules/thumbnail/thumbnail.service.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-await-in-loop */ import { EntityRepository } from '@mikro-orm/core'; import { InjectRepository } from '@mikro-orm/nestjs'; import { BadRequestException, Injectable, Logger } from '@nestjs/common'; @@ -23,7 +24,7 @@ export class ThumbnailService { private static readonly IMAGE_TYPES = new Set( Object.keys(sharp.format) .map((key) => mime.lookup(key)) - .filter((key) => key && key.startsWith('image')) + .filter((key) => key && key.startsWith('image')), ); private static readonly VIDEO_TYPES = new Set([ @@ -42,7 +43,7 @@ export class ThumbnailService { @InjectRepository('Thumbnail') private readonly thumbnailRepo: EntityRepository, @InjectRepository('File') private readonly fileRepo: EntityRepository, private readonly storageService: StorageService, - private readonly fileService: FileService + private readonly fileService: FileService, ) {} async getThumbnail(fileId: string) { @@ -111,8 +112,7 @@ export class ThumbnailService { // and it is so whatever. maybe there is a way to do this faster, but this is already pretty fast. const positions = ['5%', '10%', '20%', '40%']; const size = `${ThumbnailService.THUMBNAIL_SIZE}x?`; - for (let positionIndex = 0; positionIndex < positions.length; positionIndex++) { - const percent = positions[positionIndex]; + for (const [positionIndex, percent] of positions.entries()) { const stream = ffmpeg(filePath).screenshot({ count: 1, timemarks: [percent], diff --git a/packages/api/src/modules/user/user.controller.ts b/packages/api/src/modules/user/user.controller.ts index cc290fa..f74281e 100644 --- a/packages/api/src/modules/user/user.controller.ts +++ b/packages/api/src/modules/user/user.controller.ts @@ -1,5 +1,5 @@ import { Controller, Get, Param, Response } from '@nestjs/common'; -import type { FastifyReply } from 'fastify'; +import { type FastifyReply } from 'fastify'; import { UserService } from './user.service.js'; @Controller() @@ -10,7 +10,7 @@ export class UserController { async verifyUser( @Param('userId') userId: string, @Param('verifyId') verifyId: string, - @Response() reply: FastifyReply + @Response() reply: FastifyReply, ) { await this.userService.verifyUser(userId, verifyId); return reply.redirect(302, '/login?verified=true'); diff --git a/packages/api/src/orm.config.ts b/packages/api/src/orm.config.ts index 2a09b8e..19dac66 100644 --- a/packages/api/src/orm.config.ts +++ b/packages/api/src/orm.config.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/consistent-type-assertions */ -/* eslint-disable import/no-default-export */ import { FlushMode } from '@mikro-orm/core'; import type { MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs'; import { Logger, NotFoundException } from '@nestjs/common'; diff --git a/packages/api/src/types/edge.type.ts b/packages/api/src/types/edge.type.ts index a6c4ed2..36a7787 100644 --- a/packages/api/src/types/edge.type.ts +++ b/packages/api/src/types/edge.type.ts @@ -1,4 +1,3 @@ -/* eslint-disable unicorn/no-keyword-prefix */ import type { Type } from '@nestjs/common'; import { Field, ObjectType } from '@nestjs/graphql'; diff --git a/packages/api/src/types/paginated.type.ts b/packages/api/src/types/paginated.type.ts index 97c6764..671e300 100644 --- a/packages/api/src/types/paginated.type.ts +++ b/packages/api/src/types/paginated.type.ts @@ -1,4 +1,3 @@ -/* eslint-disable unicorn/no-keyword-prefix */ import type { Type } from '@nestjs/common'; import { Field, Int, ObjectType } from '@nestjs/graphql'; import { Edge } from './edge.type.js'; diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json index e8a2311..be46b7d 100644 --- a/packages/api/tsconfig.json +++ b/packages/api/tsconfig.json @@ -4,10 +4,10 @@ "compilerOptions": { "outDir": "dist", "noUncheckedIndexedAccess": false, - "strictPropertyInitialization": false, + "strictPropertyInitialization": false, // doesn't play nice with mikroorm/graphql decorators "noImplicitOverride": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "lib": ["es2021", "dom"] - } + "lib": ["es2021", "dom"], + }, } diff --git a/packages/web/.eslintrc.cjs b/packages/web/.eslintrc.cjs new file mode 100644 index 0000000..fb75681 --- /dev/null +++ b/packages/web/.eslintrc.cjs @@ -0,0 +1,23 @@ +module.exports = { + extends: require.resolve('@atlasbot/configs/eslint/react'), + parserOptions: { + project: './tsconfig.json', + }, + rules: { + '@typescript-eslint/no-floating-promises': 'off', + 'jsx-a11y/no-autofocus': 'off', + 'jsx-a11y/media-has-caption': 'off', + 'unicorn/consistent-destructuring': 'off', + 'react/react-in-jsx-scope': 'off', + 'unicorn/filename-case': 'off', + 'import/no-default-export': 'off', + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + prefer: 'type-imports', + disallowTypeAnnotations: false, + fixStyle: 'separate-type-imports', + }, + ], + }, +}; diff --git a/packages/web/.eslintrc.js b/packages/web/.eslintrc.js deleted file mode 100644 index d00a78a..0000000 --- a/packages/web/.eslintrc.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - extends: require.resolve('@atlasbot/configs/eslint/next'), - parserOptions: { - project: './tsconfig.json', - }, - rules: { - '@typescript-eslint/no-floating-promises': 'off', - 'jsx-a11y/no-autofocus': 'off', - 'jsx-a11y/media-has-caption': 'off', - }, -}; diff --git a/packages/web/codegen.ts b/packages/web/codegen.ts index 6fe1b15..b6d167e 100644 --- a/packages/web/codegen.ts +++ b/packages/web/codegen.ts @@ -1,4 +1,4 @@ -import { CodegenConfig } from '@graphql-codegen/cli'; +import type { CodegenConfig } from '@graphql-codegen/cli'; export default { overwrite: true, @@ -17,9 +17,6 @@ export default { fragmentMasking: false, }, }, - 'src/@generated/introspection.json': { - plugins: ['introspection'], - }, }, hooks: { afterAllFileWrite: ['prettier --write'], diff --git a/packages/web/package.json b/packages/web/package.json index 395ca91..d84e10a 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -11,17 +11,14 @@ }, "scripts": { "build": "tsc --noEmit && rm -rf ./dist/* && vavite build && tsup && rm -rf ./dist/server", - "generate": "graphql-codegen --config codegen.ts", "start": "node ./dist/index.js", - "watch": "concurrently \"vavite serve\" \"pnpm generate --watch\"" + "watch": "vavite serve" }, "devDependencies": { "@atlasbot/configs": "^10.5.15", "@fastify/early-hints": "^1.0.1", - "@fastify/http-proxy": "^9.3.0", - "@graphql-codegen/cli": "^5.0.0", - "@graphql-codegen/client-preset": "^4.1.0", - "@graphql-codegen/introspection": "^4.0.0", + "@fastify/http-proxy": "^9.4.0", + "@graphql-codegen/client-preset": "^4.2.2", "@graphql-typed-document-node/core": "^3.2.0", "@parcel/watcher": "^2.3.0", "@preact/preset-vite": "^2.8.1", @@ -32,20 +29,19 @@ "@urql/preact": "^4.0.4", "autoprefixer": "^10.4.16", "clsx": "^2.1.0", - "concurrently": "^8.2.2", "copy-to-clipboard": "^3.3.3", "dayjs": "^1.11.10", - "fastify": "^4.25.2", + "fastify": "^4.26.0", "formik": "^2.4.5", "generate-avatar": "1.4.10", "graphql": "^16.8.1", "http-status-codes": "^2.3.0", - "nanoid": "^5.0.4", + "nanoid": "^5.0.5", "path-to-regexp": "^6.2.1", - "postcss": "^8.4.33", - "preact": "^10.19.3", + "postcss": "^8.4.35", + "preact": "^10.19.4", "preact-render-to-string": "^6.3.1", - "prettier": "^3.1.1", + "prettier": "^3.2.5", "prism-react-renderer": "^2.3.1", "qrcode.react": "^3.1.0", "react": "npm:@preact/compat@^17.1.2", @@ -55,11 +51,13 @@ "react-markdown": "^9.0.1", "remark-gfm": "^4.0.0", "tailwindcss": "^3.4.1", - "tsup": "^8.0.1", + "tsup": "^8.0.2", "typescript": "^5.3.3", - "vavite": "^4.0.1", - "vike": "^0.4.156", - "vite": "^5.0.11", + "vavite": "^4.0.3", + "vike": "^0.4.161", + "vite": "^5.1.1", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-graphql-codegen": "^3.3.6", "yup": "^1.3.3" } } diff --git a/packages/web/src/@generated/introspection.json b/packages/web/src/@generated/introspection.json deleted file mode 100644 index 991c420..0000000 --- a/packages/web/src/@generated/introspection.json +++ /dev/null @@ -1,3515 +0,0 @@ -{ - "__schema": { - "queryType": { - "name": "Query" - }, - "mutationType": { - "name": "Mutation" - }, - "subscriptionType": null, - "types": [ - { - "kind": "SCALAR", - "name": "Boolean", - "description": "The `Boolean` scalar type represents `true` or `false`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Config", - "description": null, - "fields": [ - { - "name": "allowTypes", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "currentHost", - "description": "The host the request is being made to. This host may not be in the hosts list if the user is not authorized to access it.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ConfigHost", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hosts", - "description": "A list of hosts the user can access.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ConfigHost", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inquiriesEmail", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requireEmails", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rootHost", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ConfigHost", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "uploadLimit", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ConfigHost", - "description": null, - "fields": [ - { - "name": "normalised", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "redirect", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreatePasteDto", - "description": null, - "fields": null, - "inputFields": [ - { - "name": "burn", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "content", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "encrypted", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "expiresAt", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "extension", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hostname", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "paranoid", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateUserDto", - "description": null, - "fields": null, - "inputFields": [ - { - "name": "email", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invite", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "password", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "username", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "DateTime", - "description": "A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "File", - "description": null, - "fields": [ - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "displayName", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hash", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isOwner", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "FileMetadata", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "paths", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ResourceLocations", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "size", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sizeFormatted", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "textContent", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thumbnail", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "Thumbnail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "urls", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ResourceLocations", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FileMetadata", - "description": null, - "fields": [ - { - "name": "height", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "width", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FilePage", - "description": null, - "fields": [ - { - "name": "edges", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "FilePageEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FilePageEdge", - "description": null, - "fields": [ - { - "name": "cursor", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "File", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Float", - "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "ID", - "description": "The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Invite", - "description": null, - "fields": [ - { - "name": "consumed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "expired", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "expiresAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissions", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "skipVerification", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Link", - "description": null, - "fields": [ - { - "name": "clicks", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "destination", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "paths", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ResourceLocations", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "urls", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ResourceLocations", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Mutation", - "description": null, - "fields": [ - { - "name": "confirmOTP", - "description": null, - "args": [ - { - "name": "otpCode", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createInvite", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Invite", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createLink", - "description": null, - "args": [ - { - "name": "destination", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "host", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Link", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createPaste", - "description": null, - "args": [ - { - "name": "partial", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreatePasteDto", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Paste", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createUser", - "description": null, - "args": [ - { - "name": "data", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateUserDto", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteFile", - "description": null, - "args": [ - { - "name": "fileId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "key", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "disableOTP", - "description": null, - "args": [ - { - "name": "otpCode", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": null, - "args": [ - { - "name": "otpCode", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "password", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "username", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "logout", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "refreshToken", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resendVerificationEmail", - "description": null, - "args": [ - { - "name": "data", - "description": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "ResendVerificationEmailDto", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OTPEnabledDto", - "description": null, - "fields": [ - { - "name": "qrauthUrl", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "recoveryCodes", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "secret", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PageInfo", - "description": null, - "fields": [ - { - "name": "endCursor", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasNextPage", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasPreviousPage", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startCursor", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Paste", - "description": null, - "fields": [ - { - "name": "burn", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "burnt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "content", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "encrypted", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "expiresAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "extension", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "paths", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ResourceLocations", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "urls", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ResourceLocations", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PastePage", - "description": null, - "fields": [ - { - "name": "edges", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PastePageEdge", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PastePageEdge", - "description": null, - "fields": [ - { - "name": "cursor", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Paste", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Query", - "description": null, - "fields": [ - { - "name": "config", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Config", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "file", - "description": null, - "args": [ - { - "name": "fileId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "File", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "generateOTP", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OTPEnabledDto", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invite", - "description": null, - "args": [ - { - "name": "inviteId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Invite", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "link", - "description": null, - "args": [ - { - "name": "linkId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Link", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "paste", - "description": null, - "args": [ - { - "name": "pasteId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Paste", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ResendVerificationEmailDto", - "description": null, - "fields": null, - "inputFields": [ - { - "name": "email", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ResourceLocations", - "description": null, - "fields": [ - { - "name": "delete", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "direct", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thumbnail", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "view", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Thumbnail", - "description": null, - "fields": [ - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duration", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "height", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "size", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "width", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "User", - "description": null, - "fields": [ - { - "name": "aggregateFileSize", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "files", - "description": null, - "args": [ - { - "name": "after", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "first", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "FilePage", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "otpEnabled", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pastes", - "description": null, - "args": [ - { - "name": "after", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "first", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PastePage", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tags", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "username", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifiedEmail", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Directive", - "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRepeatable", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "description": "Location adjacent to a field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VARIABLE_DEFINITION", - "description": "Location adjacent to a variable definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__EnumValue", - "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Field", - "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__InputValue", - "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultValue", - "description": "A GraphQL-formatted string representing the default value for this input value.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Schema", - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", - "fields": [ - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "types", - "description": "A list of all types supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", - "description": "The type that query operations will be rooted at.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mutationType", - "description": "If this server supports mutation, the type that mutation operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscriptionType", - "description": "If this server support subscription, the type that subscription operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "directives", - "description": "A list of all directives supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Type", - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", - "fields": [ - { - "name": "kind", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "specifiedByURL", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaces", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "possibleTypes", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enumValues", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inputFields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ofType", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "description": "An enum describing what kind of type a given `__Type` is.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SCALAR", - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIST", - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NON_NULL", - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - } - ], - "directives": [ - { - "name": "deprecated", - "description": "Marks an element of a GraphQL schema as no longer supported.", - "isRepeatable": false, - "locations": ["ARGUMENT_DEFINITION", "ENUM_VALUE", "FIELD_DEFINITION", "INPUT_FIELD_DEFINITION"], - "args": [ - { - "name": "reason", - "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": "\"No longer supported\"", - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "include", - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "isRepeatable": false, - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "args": [ - { - "name": "if", - "description": "Included when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "skip", - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "isRepeatable": false, - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "args": [ - { - "name": "if", - "description": "Skipped when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "specifiedBy", - "description": "Exposes a URL that specifies the behavior of this scalar.", - "isRepeatable": false, - "locations": ["SCALAR"], - "args": [ - { - "name": "url", - "description": "The URL that specifies the behavior of this scalar.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - } - ] - } -} diff --git a/packages/web/src/app.tsx b/packages/web/src/app.tsx index 81454ab..2e94529 100644 --- a/packages/web/src/app.tsx +++ b/packages/web/src/app.tsx @@ -1,4 +1,5 @@ -import React, { FC, Fragment } from 'react'; +import type { FC } from 'react'; +import React, { Fragment } from 'react'; import { Header } from './components/header/header'; import { Title } from './components/title'; import './styles/globals.css'; diff --git a/packages/web/src/components/avatar.tsx b/packages/web/src/components/avatar.tsx index ec8e3b4..a5a3925 100644 --- a/packages/web/src/components/avatar.tsx +++ b/packages/web/src/components/avatar.tsx @@ -1,4 +1,3 @@ -/* eslint-disable react/no-danger */ import clsx from 'clsx'; import * as avatar from 'generate-avatar'; import type { FC } from 'react'; @@ -14,7 +13,7 @@ export const Avatar: FC = (props) => { const containerRef = useRef(null); const svg = useMemo(() => { const result = avatar.generateFromString(props.userId); - return result.replace(/(width|height)="(\d+)"/g, '$1="100%"'); + return result.replaceAll(/(width|height)="(\d+)"/g, '$1="100%"'); }, [props.userId]); return
; diff --git a/packages/web/src/components/button.tsx b/packages/web/src/components/button.tsx index bb1aa2c..35e3bf4 100644 --- a/packages/web/src/components/button.tsx +++ b/packages/web/src/components/button.tsx @@ -1,4 +1,3 @@ -/* eslint-disable react/button-has-type */ import clsx from 'clsx'; import type { FC, HTMLAttributes } from 'react'; import { forwardRef } from 'react'; diff --git a/packages/web/src/components/error.tsx b/packages/web/src/components/error.tsx index 21a2ed5..2ea4946 100644 --- a/packages/web/src/components/error.tsx +++ b/packages/web/src/components/error.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react'; +import type { FC } from 'react'; import { getErrorMessage } from '../helpers/get-error-message.helper'; import { usePaths } from '../hooks/usePaths'; import { Container } from './container'; diff --git a/packages/web/src/components/header/header.tsx b/packages/web/src/components/header/header.tsx index c570eea..7729fba 100644 --- a/packages/web/src/components/header/header.tsx +++ b/packages/web/src/components/header/header.tsx @@ -12,7 +12,7 @@ import { Input } from '../input/input'; import { Link } from '../link'; import { useToasts } from '../toast'; import { HeaderUser } from './header-user'; -import { graphql } from '../../@generated'; +import { graphql } from '../../@generated/gql'; import { useMutation } from '@urql/preact'; const ResendVerificationEmail = graphql(` diff --git a/packages/web/src/components/input/checkbox.tsx b/packages/web/src/components/input/checkbox.tsx index 474b3fe..236c1b3 100644 --- a/packages/web/src/components/input/checkbox.tsx +++ b/packages/web/src/components/input/checkbox.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ComponentProps } from 'react'; import React from 'react'; import type { InputChildProps } from './container'; diff --git a/packages/web/src/components/input/input.tsx b/packages/web/src/components/input/input.tsx index 4bfce7d..6079954 100644 --- a/packages/web/src/components/input/input.tsx +++ b/packages/web/src/components/input/input.tsx @@ -1,4 +1,5 @@ -import React, { ComponentProps } from 'react'; +import type { ComponentProps } from 'react'; +import React from 'react'; import type { InputChildProps } from './container'; import { InputContainer } from './container'; diff --git a/packages/web/src/components/input/submit.tsx b/packages/web/src/components/input/submit.tsx index 8ea3db7..358ef05 100644 --- a/packages/web/src/components/input/submit.tsx +++ b/packages/web/src/components/input/submit.tsx @@ -1,6 +1,7 @@ import { useFormikContext } from 'formik'; import type { FC } from 'react'; -import { Button, ButtonProps } from '../button'; +import type { ButtonProps } from '../button'; +import { Button } from '../button'; /** * Wraps a button and disables when the form is not ready to be submitted. diff --git a/packages/web/src/components/link.tsx b/packages/web/src/components/link.tsx index e7a6b09..8453f67 100644 --- a/packages/web/src/components/link.tsx +++ b/packages/web/src/components/link.tsx @@ -1,4 +1,5 @@ -import { ComponentProps, forwardRef } from 'react'; +import type { ComponentProps} from 'react'; +import { forwardRef } from 'react'; export interface LinkProps extends ComponentProps<'a'> { href: string; diff --git a/packages/web/src/components/skeleton.tsx b/packages/web/src/components/skeleton.tsx index 2277131..453f008 100644 --- a/packages/web/src/components/skeleton.tsx +++ b/packages/web/src/components/skeleton.tsx @@ -1,5 +1,6 @@ import clsx from 'clsx'; -import { FC, Fragment, ReactNode, memo } from 'react'; +import type { FC, ReactNode } from 'react'; +import { Fragment, memo } from 'react'; import { BASE_BUTTON_CLASSES } from './button'; import { BASE_INPUT_CLASSES, BASE_INPUT_MAX_HEIGHT } from './input/container'; diff --git a/packages/web/src/components/toast/context.ts b/packages/web/src/components/toast/context.ts index c6718c2..7aab5cc 100644 --- a/packages/web/src/components/toast/context.ts +++ b/packages/web/src/components/toast/context.ts @@ -1,5 +1,5 @@ import React from 'react'; -import { ToastProps } from './toast'; +import type { ToastProps } from './toast'; export type ToastContextData = null | ((toast: ToastProps) => void); export const ToastContext = React.createContext(null); diff --git a/packages/web/src/components/warning.tsx b/packages/web/src/components/warning.tsx index 2303d8e..2ae63b4 100644 --- a/packages/web/src/components/warning.tsx +++ b/packages/web/src/components/warning.tsx @@ -1,5 +1,5 @@ import clsx from 'clsx'; -import { type FC, type ReactNode } from 'react'; +import type { FC, ReactNode } from 'react'; import { FiInfo } from 'react-icons/fi'; export const Warning: FC<{ children: ReactNode; className?: string }> = ({ children, className }) => { diff --git a/packages/web/src/containers/config-generator/config-generator.tsx b/packages/web/src/containers/config-generator/config-generator.tsx index e383838..7fe50cf 100644 --- a/packages/web/src/containers/config-generator/config-generator.tsx +++ b/packages/web/src/containers/config-generator/config-generator.tsx @@ -1,7 +1,8 @@ import clsx from 'clsx'; -import { FC, Fragment, useState } from 'react'; +import type { FC } from 'react'; +import { Fragment, useState } from 'react'; import { FiDownload } from 'react-icons/fi'; -import { RegularUserFragment } from '../../@generated/graphql'; +import type { RegularUserFragment } from '../../@generated/graphql'; import { Container } from '../../components/container'; import { Section } from '../../components/section'; import { Skeleton, SkeletonList, SkeletonWrap } from '../../components/skeleton'; diff --git a/packages/web/src/containers/file-list/cards/file-card.tsx b/packages/web/src/containers/file-list/cards/file-card.tsx index f9a63e3..c6a84f0 100644 --- a/packages/web/src/containers/file-list/cards/file-card.tsx +++ b/packages/web/src/containers/file-list/cards/file-card.tsx @@ -1,7 +1,7 @@ import { memo, useEffect, useMemo, useState } from 'react'; import { FiFileMinus, FiTrash } from 'react-icons/fi'; -import { graphql } from '../../../@generated'; -import { FileCardFragment } from '../../../@generated/graphql'; +import { graphql } from '../../../@generated/gql'; +import type { FileCardFragment } from '../../../@generated/graphql'; import { Link } from '../../../components/link'; import { Skeleton } from '../../../components/skeleton'; import { useConfig } from '../../../hooks/useConfig'; diff --git a/packages/web/src/containers/file-list/cards/paste-card.tsx b/packages/web/src/containers/file-list/cards/paste-card.tsx index 0abd14a..b16143f 100644 --- a/packages/web/src/containers/file-list/cards/paste-card.tsx +++ b/packages/web/src/containers/file-list/cards/paste-card.tsx @@ -1,7 +1,7 @@ import clsx from 'clsx'; import { memo } from 'react'; -import { graphql } from '../../../@generated'; -import { PasteCardFragment } from '../../../@generated/graphql'; +import { graphql } from '../../../@generated/gql'; +import type { PasteCardFragment } from '../../../@generated/graphql'; import { Link } from '../../../components/link'; import { Time } from '../../../components/time'; import { useUser } from '../../../hooks/useUser'; diff --git a/packages/web/src/containers/file-list/file-list.tsx b/packages/web/src/containers/file-list/file-list.tsx index 173c3f8..e20ef48 100644 --- a/packages/web/src/containers/file-list/file-list.tsx +++ b/packages/web/src/containers/file-list/file-list.tsx @@ -1,7 +1,7 @@ import { useQuery } from '@urql/preact'; import type { FC } from 'react'; import { Fragment } from 'react'; -import { graphql } from '../../@generated'; +import { graphql } from '../../@generated/gql'; import { Breadcrumbs } from '../../components/breadcrumbs'; import { Card } from '../../components/card'; import { Error } from '../../components/error'; diff --git a/packages/web/src/containers/file-list/missing-preview.tsx b/packages/web/src/containers/file-list/missing-preview.tsx index 49ca38a..5d944f6 100644 --- a/packages/web/src/containers/file-list/missing-preview.tsx +++ b/packages/web/src/containers/file-list/missing-preview.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import { IconType } from 'react-icons/lib'; +import type { IconType } from 'react-icons/lib'; interface MissingPreviewProps { icon: IconType; diff --git a/packages/web/src/containers/login-form.tsx b/packages/web/src/containers/login-form.tsx index d507326..e9b6952 100644 --- a/packages/web/src/containers/login-form.tsx +++ b/packages/web/src/containers/login-form.tsx @@ -3,7 +3,7 @@ import { Form, Formik } from 'formik'; import type { FC } from 'react'; import { Fragment, useCallback, useEffect, useState } from 'react'; import * as Yup from 'yup'; -import { LoginMutationVariables } from '../@generated/graphql'; +import type { LoginMutationVariables } from '../@generated/graphql'; import { Input } from '../components/input/input'; import { OtpInput } from '../components/input/otp'; import { Submit } from '../components/input/submit'; diff --git a/packages/web/src/hooks/useConfig.tsx b/packages/web/src/hooks/useConfig.tsx index e1c8543..4b7dfb9 100644 --- a/packages/web/src/hooks/useConfig.tsx +++ b/packages/web/src/hooks/useConfig.tsx @@ -1,5 +1,6 @@ -import { CombinedError, useQuery } from '@urql/preact'; -import { graphql } from '../@generated'; +import type { CombinedError } from '@urql/preact'; +import { useQuery } from '@urql/preact'; +import { graphql } from '../@generated/gql'; const ConfigQuery = graphql(` query Config { diff --git a/packages/web/src/hooks/usePaths.tsx b/packages/web/src/hooks/usePaths.tsx index 23fb09b..33b764b 100644 --- a/packages/web/src/hooks/usePaths.tsx +++ b/packages/web/src/hooks/usePaths.tsx @@ -1,4 +1,3 @@ -/* eslint-disable sonarjs/no-duplicate-string */ import { useConfig } from './useConfig'; export const usePaths = () => { diff --git a/packages/web/src/hooks/useQueryState.ts b/packages/web/src/hooks/useQueryState.ts index 6c01afa..1dcdfdc 100644 --- a/packages/web/src/hooks/useQueryState.ts +++ b/packages/web/src/hooks/useQueryState.ts @@ -8,8 +8,7 @@ export const useQueryState = (key: string, initialState?: S, parser?: (input: // during SSR, we can grab query params from the page context const value = pageContext.urlParsed.search[key]; if (value) { - const result = parser ? parser(value) : (value as any); - return result; + return parser ? parser(value) : (value as any); } } @@ -18,8 +17,7 @@ export const useQueryState = (key: string, initialState?: S, parser?: (input: const search = new URLSearchParams(window.location.search); const value = search.get(key); if (value) { - const result = parser ? parser(value) : (value as any); - return result; + return parser ? parser(value) : (value as any); } } diff --git a/packages/web/src/hooks/useUser.tsx b/packages/web/src/hooks/useUser.tsx index fc195a0..dd7ab4f 100644 --- a/packages/web/src/hooks/useUser.tsx +++ b/packages/web/src/hooks/useUser.tsx @@ -1,8 +1,10 @@ import { useEffect, useState } from 'react'; -import { CombinedError, TypedDocumentNode, useMutation, useQuery } from '@urql/preact'; -import { graphql } from '../@generated'; -import type { GetUserQuery, LoginMutationVariables, RegularUserFragment } from '../@generated/graphql'; +import type { CombinedError, TypedDocumentNode } from '@urql/preact'; +import { useMutation, useQuery } from '@urql/preact'; +import { graphql } from '../@generated/gql'; +import type { GetUserQuery, LoginMutationVariables } from '../@generated/graphql'; import { navigate, reload } from '../helpers/routing'; +import { type RegularUserFragment } from '../@generated/graphql'; import { useAsync } from './useAsync'; const RegularUserFragment = graphql(` diff --git a/packages/web/src/pages/+Page.tsx b/packages/web/src/pages/+Page.tsx index 88e92d0..9438437 100644 --- a/packages/web/src/pages/+Page.tsx +++ b/packages/web/src/pages/+Page.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react'; +import type { FC } from 'react'; import { Container } from '../components/container'; import { useConfig } from '../hooks/useConfig'; import { Spinner } from '../components/spinner'; diff --git a/packages/web/src/pages/dashboard/+Page.tsx b/packages/web/src/pages/dashboard/+Page.tsx index 5144927..a2ace7e 100644 --- a/packages/web/src/pages/dashboard/+Page.tsx +++ b/packages/web/src/pages/dashboard/+Page.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react'; +import type { FC } from 'react'; import { Container } from '../../components/container'; import { Title } from '../../components/title'; import { FileList } from '../../containers/file-list/file-list'; diff --git a/packages/web/src/pages/dashboard/mfa/+Page.tsx b/packages/web/src/pages/dashboard/mfa/+Page.tsx index c51f4f6..08c5f52 100644 --- a/packages/web/src/pages/dashboard/mfa/+Page.tsx +++ b/packages/web/src/pages/dashboard/mfa/+Page.tsx @@ -1,9 +1,10 @@ import { useMutation, useQuery } from '@urql/preact'; import clsx from 'clsx'; import { QRCodeSVG } from 'qrcode.react'; -import { FC, Fragment, useCallback, useMemo } from 'react'; +import type { FC } from 'react'; +import { Fragment, useCallback, useMemo } from 'react'; import { FiChevronLeft, FiChevronRight, FiCopy, FiDownload } from 'react-icons/fi'; -import { graphql } from '../../../@generated'; +import { graphql } from '../../../@generated/gql'; import { Button, ButtonStyle } from '../../../components/button'; import { Container } from '../../../components/container'; import { Error } from '../../../components/error'; diff --git a/packages/web/src/pages/dashboard/preferences/+Page.tsx b/packages/web/src/pages/dashboard/preferences/+Page.tsx index e49f800..4b85550 100644 --- a/packages/web/src/pages/dashboard/preferences/+Page.tsx +++ b/packages/web/src/pages/dashboard/preferences/+Page.tsx @@ -1,6 +1,7 @@ -import { FC, Fragment } from 'react'; +import type { FC } from 'react'; +import { Fragment } from 'react'; import { useMutation, useQuery } from '@urql/preact'; -import { graphql } from '../../../@generated'; +import { graphql } from '../../../@generated/gql'; import { Breadcrumbs } from '../../../components/breadcrumbs'; import { Button } from '../../../components/button'; import { Container } from '../../../components/container'; @@ -42,7 +43,6 @@ export const Page: FC = () => { const { logout } = useLogoutUser(); const [, refreshMutation] = useMutation(RefreshToken); const [refresh, refreshing] = useAsync(async () => { - // eslint-disable-next-line no-alert const confirmation = confirm('Are you sure? This will invalidate all existing configs and sessions and will sign you out of the dashboard.') // prettier-ignore if (!confirmation) return; await refreshMutation({}); diff --git a/packages/web/src/pages/file/@fileId/+Page.tsx b/packages/web/src/pages/file/@fileId/+Page.tsx index 1a4e348..a07eb94 100644 --- a/packages/web/src/pages/file/@fileId/+Page.tsx +++ b/packages/web/src/pages/file/@fileId/+Page.tsx @@ -4,7 +4,7 @@ import type { FC, ReactNode } from 'react'; import { Fragment, useState } from 'react'; import { FiDownload, FiShare, FiTrash } from 'react-icons/fi'; import { useMutation, useQuery } from '@urql/preact'; -import { graphql } from '../../../@generated'; +import { graphql } from '../../../@generated/gql'; import { Container } from '../../../components/container'; import { Embed } from '../../../components/embed/embed'; import { Error } from '../../../components/error'; @@ -16,7 +16,7 @@ import { downloadUrl } from '../../../helpers/download.helper'; import { navigate } from '../../../helpers/routing'; import { useAsync } from '../../../hooks/useAsync'; import { useQueryState } from '../../../hooks/useQueryState'; -import { PageProps } from '../../../renderer/types'; +import type { PageProps } from '../../../renderer/types'; const GetFile = graphql(` query GetFile($fileId: ID!) { diff --git a/packages/web/src/pages/invite/@inviteToken/+Page.tsx b/packages/web/src/pages/invite/@inviteToken/+Page.tsx index 0ae3688..7b8e782 100644 --- a/packages/web/src/pages/invite/@inviteToken/+Page.tsx +++ b/packages/web/src/pages/invite/@inviteToken/+Page.tsx @@ -1,5 +1,6 @@ -import { FC, useEffect } from 'react'; -import { graphql } from '../../../@generated'; +import type { FC } from 'react'; +import { useEffect } from 'react'; +import { graphql } from '../../../@generated/gql'; import { Container } from '../../../components/container'; import { Error } from '../../../components/error'; import { PageLoader } from '../../../components/page-loader'; @@ -12,7 +13,7 @@ import { getErrorMessage } from '../../../helpers/get-error-message.helper'; import { navigate, prefetch } from '../../../helpers/routing'; import { useAsync } from '../../../hooks/useAsync'; import { useConfig } from '../../../hooks/useConfig'; -import { PageProps } from '../../../renderer/types'; +import type { PageProps } from '../../../renderer/types'; import { useQuery, useMutation } from '@urql/preact'; const GetInvite = graphql(` diff --git a/packages/web/src/pages/login/+Page.tsx b/packages/web/src/pages/login/+Page.tsx index e9c4ee2..8a25fb3 100644 --- a/packages/web/src/pages/login/+Page.tsx +++ b/packages/web/src/pages/login/+Page.tsx @@ -1,4 +1,5 @@ -import { FC, useEffect } from 'react'; +import type { FC } from 'react'; +import { useEffect } from 'react'; import { Title } from '../../components/title'; import { LoginForm } from '../../containers/login-form'; import { Container } from '../../components/container'; diff --git a/packages/web/src/pages/paste/+Page.tsx b/packages/web/src/pages/paste/+Page.tsx index 080c482..bf2a342 100644 --- a/packages/web/src/pages/paste/+Page.tsx +++ b/packages/web/src/pages/paste/+Page.tsx @@ -1,7 +1,7 @@ import { Form, Formik } from 'formik'; -import { FC } from 'react'; +import type { FC } from 'react'; import * as Yup from 'yup'; -import { graphql } from '../../@generated'; +import { graphql } from '../../@generated/gql'; import type { CreatePasteDto } from '../../@generated/graphql'; import { Button } from '../../components/button'; import { Container } from '../../components/container'; diff --git a/packages/web/src/pages/paste/@pasteId/+Page.tsx b/packages/web/src/pages/paste/@pasteId/+Page.tsx index 22ba31b..c076790 100644 --- a/packages/web/src/pages/paste/@pasteId/+Page.tsx +++ b/packages/web/src/pages/paste/@pasteId/+Page.tsx @@ -1,6 +1,7 @@ -import { FC, useEffect, useState } from 'react'; +import type { FC } from 'react'; +import { useEffect, useState } from 'react'; import { FiBookOpen, FiClock, FiTrash } from 'react-icons/fi'; -import { graphql } from '../../../@generated'; +import { graphql } from '../../../@generated/gql'; import { Button } from '../../../components/button'; import { Container } from '../../../components/container'; import { Embed } from '../../../components/embed/embed'; @@ -12,7 +13,7 @@ import { decryptContent } from '../../../helpers/encrypt.helper'; import { hashToObject } from '../../../helpers/hash-to-object'; import { navigate } from '../../../helpers/routing'; import { useUser } from '../../../hooks/useUser'; -import { PageProps } from '../../../renderer/types'; +import type { PageProps } from '../../../renderer/types'; import { useQuery } from '@urql/preact'; const PasteQuery = graphql(` diff --git a/packages/web/src/pages/shorten/+Page.tsx b/packages/web/src/pages/shorten/+Page.tsx index 95d7e4f..996e010 100644 --- a/packages/web/src/pages/shorten/+Page.tsx +++ b/packages/web/src/pages/shorten/+Page.tsx @@ -1,8 +1,9 @@ import { useMutation } from '@urql/preact'; import { Form, Formik } from 'formik'; -import { FC, useState } from 'react'; +import type { FC } from 'react'; +import { useState } from 'react'; import * as Yup from 'yup'; -import { graphql } from '../../@generated'; +import { graphql } from '../../@generated/gql'; import { Button } from '../../components/button'; import { Container } from '../../components/container'; import { Input } from '../../components/input/input'; diff --git a/packages/web/src/renderer/+config.h.ts b/packages/web/src/renderer/+config.h.ts index 942c480..7736c8b 100644 --- a/packages/web/src/renderer/+config.h.ts +++ b/packages/web/src/renderer/+config.h.ts @@ -1,4 +1,4 @@ -import { Config } from 'vike/types'; +import type { Config } from 'vike/types'; export default { passToClient: ['state', 'routeParams'], diff --git a/packages/web/src/renderer/+onRenderClient.tsx b/packages/web/src/renderer/+onRenderClient.tsx index d1038b3..304f05e 100644 --- a/packages/web/src/renderer/+onRenderClient.tsx +++ b/packages/web/src/renderer/+onRenderClient.tsx @@ -2,7 +2,7 @@ import { createClient, fetchExchange, ssrExchange } from '@urql/preact'; import { Provider as UrqlProvider } from '@urql/preact'; import { hydrate } from 'preact'; import { HelmetProvider } from 'react-helmet-async'; -import { OnRenderClientAsync } from 'vike/types'; +import type { OnRenderClientAsync } from 'vike/types'; import { App } from '../app'; import { PageContextProvider } from './usePageContext'; import { cacheOptions } from './cache'; @@ -37,6 +37,6 @@ export const onRenderClient: OnRenderClientAsync = async (pageContext) => { , - document.getElementById('root')!, + document.querySelector('#root')!, ); }; diff --git a/packages/web/src/renderer/+onRenderHtml.tsx b/packages/web/src/renderer/+onRenderHtml.tsx index 28aba53..e91ec7f 100644 --- a/packages/web/src/renderer/+onRenderHtml.tsx +++ b/packages/web/src/renderer/+onRenderHtml.tsx @@ -1,12 +1,13 @@ import { cacheExchange } from '@urql/exchange-graphcache'; import { Provider as UrqlProvider, createClient, fetchExchange, ssrExchange } from '@urql/preact'; -import { HelmetProvider, HelmetServerState } from 'react-helmet-async'; +import type { HelmetServerState } from 'react-helmet-async'; +import { HelmetProvider } from 'react-helmet-async'; import { dangerouslySkipEscape, escapeInject } from 'vike/server'; import type { OnRenderHtmlAsync } from 'vike/types'; import { App } from '../app'; import { cacheOptions } from './cache'; import { renderToStringWithData } from './prepass'; -import { PageProps } from './types'; +import type { PageProps } from './types'; import { PageContextProvider } from './usePageContext'; const GRAPHQL_URL = (import.meta.env.PUBLIC_ENV__FRONTEND_API_URL || import.meta.env.FRONTEND_API_URL) + '/graphql'; @@ -43,7 +44,7 @@ export const onRenderHtml: OnRenderHtmlAsync = async (pageContext): ReturnType - + ${dangerouslySkipEscape(helmet.title.toString())} diff --git a/packages/web/src/renderer/cache.ts b/packages/web/src/renderer/cache.ts index c22132d..5314975 100644 --- a/packages/web/src/renderer/cache.ts +++ b/packages/web/src/renderer/cache.ts @@ -1,10 +1,7 @@ -import { CacheExchangeOpts } from '@urql/exchange-graphcache'; +import type { CacheExchangeOpts } from '@urql/exchange-graphcache'; import { relayPagination } from '@urql/exchange-graphcache/extras'; -import schema from '../@generated/introspection.json'; - export const cacheOptions: Partial = { - schema: schema, resolvers: { User: { files: relayPagination(), diff --git a/packages/web/src/renderer/prepass.ts b/packages/web/src/renderer/prepass.ts index 8d758bc..feab865 100644 --- a/packages/web/src/renderer/prepass.ts +++ b/packages/web/src/renderer/prepass.ts @@ -1,6 +1,6 @@ -import { VNode } from 'preact'; +import type { VNode } from 'preact'; import renderToString from 'preact-render-to-string'; -import { Client } from '@urql/preact'; +import type { Client } from '@urql/preact'; const MAX_DEPTH = 3; const isPromiseLike = (value: unknown): value is Promise => { diff --git a/packages/web/src/renderer/types.ts b/packages/web/src/renderer/types.ts index 7be47d3..717384a 100644 --- a/packages/web/src/renderer/types.ts +++ b/packages/web/src/renderer/types.ts @@ -1,7 +1,8 @@ -import { FC } from 'react'; -import { SSRData } from '@urql/preact'; +import type { FC } from 'react'; +import type { SSRData } from '@urql/preact'; // https://vike.dev/pageContext#typescript +/* eslint-disable @typescript-eslint/no-namespace */ declare global { namespace Vike { interface PageContext { diff --git a/packages/web/src/renderer/usePageContext.tsx b/packages/web/src/renderer/usePageContext.tsx index f91617e..a141011 100644 --- a/packages/web/src/renderer/usePageContext.tsx +++ b/packages/web/src/renderer/usePageContext.tsx @@ -14,6 +14,5 @@ export function PageContextProvider({ } export function usePageContext() { - const pageContext = useContext(Context); - return pageContext; + return useContext(Context); } diff --git a/packages/web/src/server/index.ts b/packages/web/src/server/index.ts index 934417c..b46669c 100644 --- a/packages/web/src/server/index.ts +++ b/packages/web/src/server/index.ts @@ -1,11 +1,12 @@ import FastifyEarlyHints from '@fastify/early-hints'; import FastifyProxy from '@fastify/http-proxy'; -import Fastify, { FastifyInstance } from 'fastify'; -import { IncomingMessage, ServerResponse } from 'http'; +import type { FastifyInstance } from 'fastify'; +import Fastify from 'fastify'; +import type { IncomingMessage, ServerResponse } from 'http'; import { compile, match } from 'path-to-regexp'; import url from 'url'; import { renderPage } from 'vike/server'; -import { PageContext } from 'vike/types'; +import type { PageContext } from 'vike/types'; import { REWRITES } from './rewrites'; const rewrites = REWRITES.map(({ source, destination }) => ({ @@ -58,8 +59,7 @@ async function startServer() { for (const { match, toPath } of rewrites) { const result = match(pathname); if (result) { - const replaced = toPath(result.params); - return replaced; + return toPath(result.params); } } @@ -99,14 +99,14 @@ async function startServer() { } const { httpResponse } = pageContext; - if (!httpResponse) { - reply.status(500).send('Internal Server Error'); - } else { + if (httpResponse) { const { body, statusCode, headers, earlyHints } = httpResponse; reply.writeEarlyHints({ link: earlyHints.map((e) => e.earlyHintLink) }); - headers.forEach(([name, value]) => reply.header(name, value)); + for (const [name, value] of headers) reply.header(name, value); reply.status(statusCode); reply.send(body); + } else { + reply.status(500).send('Internal Server Error'); } }); @@ -115,6 +115,7 @@ async function startServer() { } let fastify: FastifyInstance | undefined; +// eslint-disable-next-line unicorn/prefer-top-level-await const fastifyHandlerPromise = startServer().catch((error) => { console.error(error); process.exit(1); diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json index 117d53f..9f2e767 100644 --- a/packages/web/tsconfig.json +++ b/packages/web/tsconfig.json @@ -1,21 +1,21 @@ { + "extends": "@atlasbot/configs/tsconfig/esm.json", "compilerOptions": { - "strict": true, "module": "ES2022", "target": "ES2022", "moduleResolution": "Bundler", "lib": ["DOM", "DOM.Iterable", "ESNext"], "types": ["vite/client"], - "skipLibCheck": true, "esModuleInterop": true, - "noUnusedLocals": true, - + "noUncheckedIndexedAccess": false, "jsx": "react-jsx", "jsxImportSource": "preact", "baseUrl": "./", "paths": { "react": ["./node_modules/preact/compat/"], "react-dom": ["./node_modules/preact/compat/"], + // todo: https://github.com/gxmari007/vite-plugin-eslint/issues/74 + "vite-plugin-eslint": ["./node_modules/vite-plugin-eslint/dist/index.d.ts"], }, }, } diff --git a/packages/web/vite.config.ts b/packages/web/vite.config.ts index e65bf65..a915e43 100644 --- a/packages/web/vite.config.ts +++ b/packages/web/vite.config.ts @@ -2,11 +2,14 @@ import { preact } from '@preact/preset-vite'; import { vavite } from 'vavite'; import ssr from 'vike/plugin'; import { defineConfig } from 'vite'; +import eslint from 'vite-plugin-eslint'; +import codegen from 'vite-plugin-graphql-codegen'; -// todo: https://github.com/dotansimha/graphql-code-generator/issues/9774 export default defineConfig({ buildSteps: [ - { name: 'client' }, + { + name: 'client', + }, { name: 'server', config: { @@ -21,11 +24,14 @@ export default defineConfig({ noExternal: ['react-helmet-async', 'prism-react-renderer', 'qrcode.react', 'formik'], }, plugins: [ + codegen(), + eslint({ cache: true }), preact(), ssr({ disableAutoFullBuild: true }), vavite({ handlerEntry: '/src/server/index.ts', serveClientAssetsInDev: true, + clientAssetsDir: 'dist/client', }), ], }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b374ca8..3c19dbe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^12.3.0 version: 12.3.0(typescript@5.3.3) turbo: - specifier: 1.11.3 - version: 1.11.3 + specifier: 1.12.3 + version: 1.12.3 typescript: specifier: ^5.3.3 version: 5.3.3 @@ -43,34 +43,34 @@ importers: version: 5.9.7(@mikro-orm/core@5.9.7)(pg@8.11.3) '@mikro-orm/nestjs': specifier: ^5.2.3 - version: 5.2.3(@mikro-orm/core@5.9.7)(@nestjs/common@10.3.1)(@nestjs/core@10.3.1) + version: 5.2.3(@mikro-orm/core@5.9.7)(@nestjs/common@10.3.2)(@nestjs/core@10.3.2) '@mikro-orm/postgresql': specifier: ^5.9.7 version: 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7) '@nestjs/common': - specifier: ^10.3.0 - version: 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + specifier: ^10.3.2 + version: 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) '@nestjs/core': - specifier: ^10.3.0 - version: 10.3.1(@nestjs/common@10.3.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + specifier: ^10.3.2 + version: 10.3.2(@nestjs/common@10.3.2)(reflect-metadata@0.2.1)(rxjs@7.8.1) '@nestjs/graphql': - specifier: ^12.0.11 - version: 12.0.11(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.8.1)(reflect-metadata@0.2.1)(utf-8-validate@6.0.3) + specifier: ^12.1.1 + version: 12.1.1(@nestjs/common@10.3.2)(@nestjs/core@10.3.2)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.8.1)(reflect-metadata@0.2.1)(utf-8-validate@6.0.3) '@nestjs/jwt': specifier: ^10.2.0 - version: 10.2.0(@nestjs/common@10.3.1) + version: 10.2.0(@nestjs/common@10.3.2) '@nestjs/mercurius': - specifier: ^12.0.11 - version: 12.0.11(@mercuriusjs/gateway@2.2.0)(@nestjs/common@10.3.1)(@nestjs/graphql@12.0.11)(fastify@4.25.2)(graphql@16.8.1)(mercurius@13.3.3) + specifier: ^12.1.1 + version: 12.1.1(@mercuriusjs/gateway@2.2.0)(@nestjs/common@10.3.2)(@nestjs/graphql@12.1.1)(fastify@4.26.0)(graphql@16.8.1)(mercurius@13.3.3) '@nestjs/passport': specifier: ^10.0.3 - version: 10.0.3(@nestjs/common@10.3.1)(passport@0.7.0) + version: 10.0.3(@nestjs/common@10.3.2)(passport@0.7.0) '@nestjs/platform-fastify': - specifier: ^10.3.0 - version: 10.3.1(@nestjs/common@10.3.1)(@nestjs/core@10.3.1) + specifier: ^10.3.2 + version: 10.3.2(@nestjs/common@10.3.2)(@nestjs/core@10.3.2) '@nestjs/schedule': - specifier: ^4.0.0 - version: 4.0.0(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(reflect-metadata@0.2.1) + specifier: ^4.0.1 + version: 4.0.1(@nestjs/common@10.3.2)(@nestjs/core@10.3.2) '@ryanke/venera': specifier: ^1.0.5 version: 1.1.0 @@ -84,8 +84,8 @@ importers: specifier: ^0.14.0 version: 0.14.1 fastify: - specifier: ^4.25.2 - version: 4.25.2 + specifier: ^4.26.0 + version: 4.26.0 fluent-ffmpeg: specifier: ^2.1.2 version: 2.1.2 @@ -99,8 +99,8 @@ importers: specifier: ^2.1.35 version: 2.1.35 nodemailer: - specifier: ^6.9.8 - version: 6.9.8 + specifier: ^6.9.9 + version: 6.9.9 otplib: specifier: ^12.0.1 version: 12.0.1 @@ -130,8 +130,8 @@ importers: specifier: ^5.9.7 version: 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7)(pg@8.11.3) '@swc/core': - specifier: ^1.3.102 - version: 1.3.106 + specifier: ^1.4.0 + version: 1.4.0 '@types/bcryptjs': specifier: ^2.4.6 version: 2.4.6 @@ -154,8 +154,8 @@ importers: specifier: ^0.7.34 version: 0.7.34 '@types/node': - specifier: ^20.10.6 - version: 20.11.7 + specifier: ^20.11.17 + version: 20.11.17 '@types/nodemailer': specifier: ^6.4.14 version: 6.4.14 @@ -181,8 +181,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 file-type: - specifier: ^18.7.0 - version: 18.7.0 + specifier: ^19.0.0 + version: 19.0.0 handlebars: specifier: ^4.7.8 version: 4.7.8 @@ -196,8 +196,8 @@ importers: specifier: ^3.0.0-canary.1 version: 3.0.0-canary.1 nanoid: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.0.5 + version: 5.0.5 normalize-url: specifier: ^8.0.0 version: 8.0.0 @@ -209,22 +209,22 @@ importers: version: 0.2.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.3.106)(@types/node@20.11.7)(typescript@5.3.3) + version: 10.9.2(@swc/core@1.4.0)(@types/node@20.11.17)(typescript@5.3.3) tsup: - specifier: ^8.0.1 - version: 8.0.1(@swc/core@1.3.106)(ts-node@10.9.2)(typescript@5.3.3) + specifier: ^8.0.2 + version: 8.0.2(@swc/core@1.4.0)(ts-node@10.9.2)(typescript@5.3.3) typescript: specifier: ^5.3.3 version: 5.3.3 vitest: - specifier: ^1.1.3 - version: 1.2.1(@types/node@20.11.7) + specifier: ^1.2.2 + version: 1.2.2(@types/node@20.11.17) zod: specifier: ^3.22.4 version: 3.22.4 zod-validation-error: - specifier: ^2.1.0 - version: 2.1.0(zod@3.22.4) + specifier: ^3.0.0 + version: 3.0.0(zod@3.22.4) packages/web: devDependencies: @@ -235,17 +235,11 @@ importers: specifier: ^1.0.1 version: 1.0.1 '@fastify/http-proxy': - specifier: ^9.3.0 - version: 9.3.0 - '@graphql-codegen/cli': - specifier: ^5.0.0 - version: 5.0.0(@parcel/watcher@2.4.0)(graphql@16.8.1)(typescript@5.3.3) + specifier: ^9.4.0 + version: 9.4.0 '@graphql-codegen/client-preset': - specifier: ^4.1.0 - version: 4.1.0(graphql@16.8.1) - '@graphql-codegen/introspection': - specifier: ^4.0.0 - version: 4.0.0(graphql@16.8.1) + specifier: ^4.2.2 + version: 4.2.2(graphql@16.8.1) '@graphql-typed-document-node/core': specifier: ^3.2.0 version: 3.2.0(graphql@16.8.1) @@ -254,10 +248,10 @@ importers: version: 2.4.0 '@preact/preset-vite': specifier: ^2.8.1 - version: 2.8.1(@babel/core@7.23.9)(preact@10.19.3)(vite@5.0.12) + version: 2.8.1(@babel/core@7.23.9)(preact@10.19.4)(vite@5.1.1) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react@18.2.48) + version: 2.0.6(@types/react@18.2.55) '@tailwindcss/typography': specifier: ^0.5.10 version: 0.5.10(tailwindcss@3.4.1) @@ -269,16 +263,13 @@ importers: version: 6.4.1(graphql@16.8.1) '@urql/preact': specifier: ^4.0.4 - version: 4.0.4(graphql@16.8.1)(preact@10.19.3) + version: 4.0.4(graphql@16.8.1)(preact@10.19.4) autoprefixer: specifier: ^10.4.16 - version: 10.4.17(postcss@8.4.33) + version: 10.4.17(postcss@8.4.35) clsx: specifier: ^2.1.0 version: 2.1.0 - concurrently: - specifier: ^8.2.2 - version: 8.2.2 copy-to-clipboard: specifier: ^3.3.3 version: 3.3.3 @@ -286,8 +277,8 @@ importers: specifier: ^1.11.10 version: 1.11.10 fastify: - specifier: ^4.25.2 - version: 4.25.2 + specifier: ^4.26.0 + version: 4.26.0 formik: specifier: ^2.4.5 version: 2.4.5 @@ -301,23 +292,23 @@ importers: specifier: ^2.3.0 version: 2.3.0 nanoid: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.0.5 + version: 5.0.5 path-to-regexp: specifier: ^6.2.1 version: 6.2.1 postcss: - specifier: ^8.4.33 - version: 8.4.33 + specifier: ^8.4.35 + version: 8.4.35 preact: - specifier: ^10.19.3 - version: 10.19.3 + specifier: ^10.19.4 + version: 10.19.4 preact-render-to-string: specifier: ^6.3.1 - version: 6.3.1(preact@10.19.3) + version: 6.3.1(preact@10.19.4) prettier: - specifier: ^3.1.1 - version: 3.2.4 + specifier: ^3.2.5 + version: 3.2.5 prism-react-renderer: specifier: ^2.3.1 version: 2.3.1 @@ -326,10 +317,10 @@ importers: version: 3.1.0 react: specifier: npm:@preact/compat@^17.1.2 - version: /@preact/compat@17.1.2(preact@10.19.3) + version: /@preact/compat@17.1.2(preact@10.19.4) react-dom: specifier: npm:@preact/compat@^17.1.2 - version: /@preact/compat@17.1.2(preact@10.19.3) + version: /@preact/compat@17.1.2(preact@10.19.4) react-helmet-async: specifier: ^2.0.4 version: 2.0.4 @@ -338,7 +329,7 @@ importers: version: 5.0.1 react-markdown: specifier: ^9.0.1 - version: 9.0.1(@types/react@18.2.48) + version: 9.0.1(@types/react@18.2.55) remark-gfm: specifier: ^4.0.0 version: 4.0.0 @@ -346,20 +337,26 @@ importers: specifier: ^3.4.1 version: 3.4.1 tsup: - specifier: ^8.0.1 - version: 8.0.1(postcss@8.4.33)(typescript@5.3.3) + specifier: ^8.0.2 + version: 8.0.2(postcss@8.4.35)(typescript@5.3.3) typescript: specifier: ^5.3.3 version: 5.3.3 vavite: - specifier: ^4.0.1 - version: 4.0.2(vite@5.0.12) + specifier: ^4.0.3 + version: 4.0.3(vite@5.1.1) vike: - specifier: ^0.4.156 - version: 0.4.160(vite@5.0.12) + specifier: ^0.4.161 + version: 0.4.161(vite@5.1.1) vite: - specifier: ^5.0.11 - version: 5.0.12(@types/node@20.11.7) + specifier: ^5.1.1 + version: 5.1.1 + vite-plugin-eslint: + specifier: ^1.8.1 + version: 1.8.1(eslint@8.56.0)(vite@5.1.1) + vite-plugin-graphql-codegen: + specifier: ^3.3.6 + version: 3.3.6(@graphql-codegen/cli@5.0.2)(graphql@16.8.1)(vite@5.1.1) yup: specifier: ^1.3.3 version: 1.3.3 @@ -520,8 +517,8 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw==} + /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -682,7 +679,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.9(@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 dev: true @@ -1038,8 +1035,8 @@ packages: resolution: {integrity: sha512-3I4LRHnVZXoSAsEoni5mosq9l6eiJED58d9V954W4CIZ88AUfYBanWGBGbJG3NztaRTpFHEA6wB3Hn93BmmJdg==} dev: true - /@brillout/vite-plugin-server-entry@0.4.3: - resolution: {integrity: sha512-JDWFZOsSJfDo9511r7OJDeNON7x5mwIGNZCi1DQWaVuYK2cs9J/eD3Jwypg4M1ex9iAb/WvI+aSAEfsVGmNeMQ==} + /@brillout/vite-plugin-server-entry@0.4.4: + resolution: {integrity: sha512-jS2CX4qcYdim09/kR83I+6HDA2JGrhP1HtX1hqPnDXna44aqsgRIxOzjoah6widA8XAykAWBwljynwK5nwQuGA==} dependencies: '@brillout/import': 0.2.3 dev: true @@ -1343,8 +1340,8 @@ packages: fastify-plugin: 4.5.1 dev: false - /@fastify/cors@8.5.0: - resolution: {integrity: sha512-/oZ1QSb02XjP0IK1U0IXktEsw/dUBTxJOW7IpIeO8c/tNalw/KjoNSJv1Sf6eqoBPO+TDGkifq6ynFK3v68HFQ==} + /@fastify/cors@9.0.1: + resolution: {integrity: sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==} dependencies: fastify-plugin: 4.5.1 mnemonist: 0.39.6 @@ -1352,6 +1349,7 @@ packages: /@fastify/deepmerge@1.3.0: resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} + dev: false /@fastify/early-hints@1.0.1: resolution: {integrity: sha512-wtxJhz3cEf87MpIQzpxwu0g/ShwIr3/wDI8a3KUBDbpQkMjYNX9i+RM5JyM7m+WJGSSl3OvwxAsUp6br7Mk5lA==} @@ -1366,7 +1364,7 @@ packages: /@fastify/fast-json-stringify-compiler@4.3.0: resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} dependencies: - fast-json-stringify: 5.10.0 + fast-json-stringify: 5.12.0 /@fastify/formbody@7.4.0: resolution: {integrity: sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==} @@ -1382,18 +1380,23 @@ packages: helmet: 7.1.0 dev: false - /@fastify/http-proxy@9.3.0: - resolution: {integrity: sha512-fQkdgwco8q7eI2PQA8lH++y3Q+hNlIByBYsphl+r4FKRbmrU7ey4WOA/CA9tBhe4oEojGpa3eTU4jXvqf2DBuQ==} + /@fastify/http-proxy@9.4.0: + resolution: {integrity: sha512-oXdvWBETRI2fJYJnRfFP/qJ6fQddUJz47X71WP7SkHdm4D5OejlNwrgnEJLUS5Kr4BSXHE5Nq5K6mmUlkivKiA==} dependencies: '@fastify/reply-from': 9.7.0 fast-querystring: 1.1.2 fastify-plugin: 4.5.1 - ws: 8.16.0(utf-8-validate@6.0.3) + ws: 8.16.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true + /@fastify/merge-json-schemas@0.1.1: + resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} + dependencies: + fast-deep-equal: 3.1.3 + /@fastify/middie@8.3.0: resolution: {integrity: sha512-h+zBxCzMlkEkh4fM7pZaSGzqS7P9M0Z6rXnWPdUEPfe7x1BCj++wEk/pQ5jpyYY4pF8AknFqb77n7uwh8HdxEA==} dependencies: @@ -1424,7 +1427,7 @@ packages: fastify-plugin: 4.5.1 pump: 3.0.0 tiny-lru: 11.2.5 - undici: 5.28.2 + undici: 5.28.3 dev: true /@fastify/send@2.1.0: @@ -1481,18 +1484,18 @@ packages: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} dev: true - /@graphql-codegen/add@5.0.0(graphql@16.8.1): - resolution: {integrity: sha512-ynWDOsK2yxtFHwcJTB9shoSkUd7YXd6ZE57f0nk7W5cu/nAgxZZpEsnTPEpZB/Mjf14YRGe2uJHQ7AfElHjqUQ==} + /@graphql-codegen/add@5.0.2(graphql@16.8.1): + resolution: {integrity: sha512-ouBkSvMFUhda5VoKumo/ZvsZM9P5ZTyDsI8LW18VxSNWOjrTeLXBWHG8Gfaai0HwhflPtCYVABbriEcOmrRShQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 dev: true - /@graphql-codegen/cli@5.0.0(@parcel/watcher@2.4.0)(graphql@16.8.1)(typescript@5.3.3): - resolution: {integrity: sha512-A7J7+be/a6e+/ul2KI5sfJlpoqeqwX8EzktaKCeduyVKgOLA6W5t+NUGf6QumBDXU8PEOqXk3o3F+RAwCWOiqA==} + /@graphql-codegen/cli@5.0.2(@parcel/watcher@2.4.0)(graphql@16.8.1)(typescript@5.3.3): + resolution: {integrity: sha512-MBIaFqDiLKuO4ojN6xxG9/xL9wmfD3ZjZ7RsPjwQnSHBCUXnEkdKvX+JVpx87Pq29Ycn8wTJUguXnTZ7Di0Mlw==} hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 @@ -1504,8 +1507,9 @@ packages: '@babel/generator': 7.23.6 '@babel/template': 7.23.9 '@babel/types': 7.23.9 - '@graphql-codegen/core': 4.0.0(graphql@16.8.1) - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/client-preset': 4.2.2(graphql@16.8.1) + '@graphql-codegen/core': 4.0.2(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/apollo-engine-loader': 8.0.0(graphql@16.8.1) '@graphql-tools/code-file-loader': 8.1.0(graphql@16.8.1) '@graphql-tools/git-loader': 8.0.4(graphql@16.8.1) @@ -1548,74 +1552,60 @@ packages: - utf-8-validate dev: true - /@graphql-codegen/client-preset@4.1.0(graphql@16.8.1): - resolution: {integrity: sha512-/3Ymb/fjxIF1+HGmaI1YwSZbWsrZAWMSQjh3dU425eBjctjsVQ6gzGRr+l/gE5F1mtmCf+vlbTAT03heAc/QIw==} + /@graphql-codegen/client-preset@4.2.2(graphql@16.8.1): + resolution: {integrity: sha512-DF9pNWj3TEdA90E9FH5SsUIqiZfr872vqaQOspLVuVXGsaDx8F/JLLzaN+7ucmoo0ff/bLW8munVXYXTmgwwEA==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.23.9 - '@graphql-codegen/add': 5.0.0(graphql@16.8.1) - '@graphql-codegen/gql-tag-operations': 4.0.1(graphql@16.8.1) - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) - '@graphql-codegen/typed-document-node': 5.0.1(graphql@16.8.1) - '@graphql-codegen/typescript': 4.0.1(graphql@16.8.1) - '@graphql-codegen/typescript-operations': 4.0.1(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) + '@graphql-codegen/add': 5.0.2(graphql@16.8.1) + '@graphql-codegen/gql-tag-operations': 4.0.4(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/typed-document-node': 5.0.4(graphql@16.8.1) + '@graphql-codegen/typescript': 4.0.4(graphql@16.8.1) + '@graphql-codegen/typescript-operations': 4.1.2(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 4.1.2(graphql@16.8.1) '@graphql-tools/documents': 1.0.0(graphql@16.8.1) '@graphql-tools/utils': 10.0.13(graphql@16.8.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/core@4.0.0(graphql@16.8.1): - resolution: {integrity: sha512-JAGRn49lEtSsZVxeIlFVIRxts2lWObR+OQo7V2LHDJ7ohYYw3ilv7nJ8pf8P4GTg/w6ptcYdSdVVdkI8kUHB/Q==} + /@graphql-codegen/core@4.0.2(graphql@16.8.1): + resolution: {integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/schema': 10.0.2(graphql@16.8.1) '@graphql-tools/utils': 10.0.13(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 dev: true - /@graphql-codegen/gql-tag-operations@4.0.1(graphql@16.8.1): - resolution: {integrity: sha512-qF6wIbBzW8BNT+wiVsBxrYOs2oYcsxQ7mRvCpfEI3HnNZMAST/uX76W8MqFEJvj4mw7NIDv7xYJAcAZIWM5LWw==} + /@graphql-codegen/gql-tag-operations@4.0.4(graphql@16.8.1): + resolution: {integrity: sha512-dypul0iDLjb07yv+/cRb6qPbn42cFPcwlsJertVl9G6qkS4+3V4806WwSfUht4QVMWnvGfgDkJJqG0yUVKOHwA==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 4.1.2(graphql@16.8.1) '@graphql-tools/utils': 10.0.13(graphql@16.8.1) auto-bind: 4.0.0 graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/introspection@4.0.0(graphql@16.8.1): - resolution: {integrity: sha512-t9g3AkK99dfHblMWtG4ynUM9+A7JrWq5110zSpNV2wlSnv0+bRKagDW8gozwgXfR5i1IIG8QDjJZ6VgXQVqCZw==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.5.3 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-codegen/plugin-helpers@5.0.1(graphql@16.8.1): - resolution: {integrity: sha512-6L5sb9D8wptZhnhLLBcheSPU7Tg//DGWgc5tQBWX46KYTOTQHGqDpv50FxAJJOyFVJrveN9otWk9UT9/yfY4ww==} + /@graphql-codegen/plugin-helpers@5.0.3(graphql@16.8.1): + resolution: {integrity: sha512-yZ1rpULIWKBZqCDlvGIJRSyj1B2utkEdGmXZTBT/GVayP4hyRYlkd36AJV/LfEsVD8dnsKL5rLz2VTYmRNlJ5Q==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: @@ -1625,74 +1615,74 @@ packages: graphql: 16.8.1 import-from: 4.0.0 lodash: 4.17.21 - tslib: 2.5.3 + tslib: 2.6.2 dev: true - /@graphql-codegen/schema-ast@4.0.0(graphql@16.8.1): - resolution: {integrity: sha512-WIzkJFa9Gz28FITAPILbt+7A8+yzOyd1NxgwFh7ie+EmO9a5zQK6UQ3U/BviirguXCYnn+AR4dXsoDrSrtRA1g==} + /@graphql-codegen/schema-ast@4.0.2(graphql@16.8.1): + resolution: {integrity: sha512-5mVAOQQK3Oz7EtMl/l3vOQdc2aYClUzVDHHkMvZlunc+KlGgl81j8TLa+X7ANIllqU4fUEsQU3lJmk4hXP6K7Q==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/utils': 10.0.13(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 dev: true - /@graphql-codegen/typed-document-node@5.0.1(graphql@16.8.1): - resolution: {integrity: sha512-VFkhCuJnkgtbbgzoCAwTdJe2G1H6sd3LfCrDqWUrQe53y2ukfSb5Ov1PhAIkCBStKCMQBUY9YgGz9GKR40qQ8g==} + /@graphql-codegen/typed-document-node@5.0.4(graphql@16.8.1): + resolution: {integrity: sha512-t66Z6erQ4Dh1j6f9pRZmc8uYtHoUI3A49tLmJAlg9/3IV0kCmwrWKJut/G8SeOefDLG8cXBTVtI/YuZOe1Te+w==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 4.1.2(graphql@16.8.1) auto-bind: 4.0.0 change-case-all: 1.0.15 graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/typescript-operations@4.0.1(graphql@16.8.1): - resolution: {integrity: sha512-GpUWWdBVUec/Zqo23aFLBMrXYxN2irypHqDcKjN78JclDPdreasAEPcIpMfqf4MClvpmvDLy4ql+djVAwmkjbw==} + /@graphql-codegen/typescript-operations@4.1.2(graphql@16.8.1): + resolution: {integrity: sha512-CtCWK+gW7hS+Ely3lohr8CL1HVLswQzMcaUk3k1sxdWCWKTNq7abMsWa31rTVwRCJ+WNEkM/7S8sIBTpEG683A==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) - '@graphql-codegen/typescript': 4.0.1(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/typescript': 4.0.4(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 4.1.2(graphql@16.8.1) auto-bind: 4.0.0 graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/typescript@4.0.1(graphql@16.8.1): - resolution: {integrity: sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==} + /@graphql-codegen/typescript@4.0.4(graphql@16.8.1): + resolution: {integrity: sha512-x79CKLfP9UQCX+/I78qxQlMs2Mmq3pF1lKafZo7lAno0f/fvJ+qWUduzdgjRNz+YL+5blGeWcC0pWEDxniO7hw==} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) - '@graphql-codegen/schema-ast': 4.0.0(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/schema-ast': 4.0.2(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 4.1.2(graphql@16.8.1) auto-bind: 4.0.0 graphql: 16.8.1 - tslib: 2.5.3 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/visitor-plugin-common@4.0.1(graphql@16.8.1): - resolution: {integrity: sha512-Bi/1z0nHg4QMsAqAJhds+ForyLtk7A3HQOlkrZNm3xEkY7lcBzPtiOTLBtvziwopBsXUxqeSwVjOOFPLS5Yw1Q==} + /@graphql-codegen/visitor-plugin-common@4.1.2(graphql@16.8.1): + resolution: {integrity: sha512-yk7iEAL1kYZ2Gi/pvVjdsZhul5WsYEM4Zcgh2Ev15VicMdJmPHsMhNUsZWyVJV0CaQCYpNOFlGD/11Ea3pn4GA==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) '@graphql-tools/optimize': 2.0.0(graphql@16.8.1) '@graphql-tools/relay-operation-optimizer': 7.0.0(graphql@16.8.1) '@graphql-tools/utils': 10.0.13(graphql@16.8.1) @@ -1702,7 +1692,7 @@ packages: graphql: 16.8.1 graphql-tag: 2.12.6(graphql@16.8.1) parse-filepath: 1.0.2 - tslib: 2.5.3 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color @@ -1790,7 +1780,7 @@ packages: graphql-ws: 5.14.3(graphql@16.8.1) isomorphic-ws: 5.0.0(ws@8.16.0) tslib: 2.6.2 - ws: 8.16.0(utf-8-validate@6.0.3) + ws: 8.16.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -1825,7 +1815,7 @@ packages: graphql: 16.8.1 isomorphic-ws: 5.0.0(ws@8.16.0) tslib: 2.6.2 - ws: 8.16.0(utf-8-validate@6.0.3) + ws: 8.16.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -1952,17 +1942,6 @@ packages: tslib: 2.6.2 dev: true - /@graphql-tools/merge@9.0.0(graphql@16.8.1): - resolution: {integrity: sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/utils': 10.0.13(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.6.2 - dev: false - /@graphql-tools/merge@9.0.1(graphql@16.8.1): resolution: {integrity: sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==} engines: {node: '>=16.0.0'} @@ -1996,12 +1975,12 @@ packages: '@whatwg-node/fetch': 0.9.16 chalk: 4.1.2 debug: 4.3.4 - dotenv: 16.4.1 + dotenv: 16.4.2 graphql: 16.8.1 graphql-request: 6.1.0(graphql@16.8.1) http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 - jose: 5.2.0 + jose: 5.2.2 js-yaml: 4.1.0 json-stable-stringify: 1.1.1 lodash: 4.17.21 @@ -2031,19 +2010,6 @@ packages: - supports-color dev: true - /@graphql-tools/schema@10.0.0(graphql@16.8.1): - resolution: {integrity: sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-tools/merge': 9.0.1(graphql@16.8.1) - '@graphql-tools/utils': 10.0.13(graphql@16.8.1) - graphql: 16.8.1 - tslib: 2.6.2 - value-or-promise: 1.0.12 - dev: false - /@graphql-tools/schema@10.0.2(graphql@16.8.1): resolution: {integrity: sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==} engines: {node: '>=16.0.0'} @@ -2055,7 +2021,6 @@ packages: graphql: 16.8.1 tslib: 2.6.2 value-or-promise: 1.0.12 - dev: true /@graphql-tools/url-loader@8.0.1(graphql@16.8.1): resolution: {integrity: sha512-B2k8KQEkEQmfV1zhurT5GLoXo8jbXP+YQHUayhCSxKYlRV7j/1Fhp1b21PDM8LXIDGlDRXaZ0FbWKOs7eYXDuQ==} @@ -2076,7 +2041,7 @@ packages: isomorphic-ws: 5.0.0(ws@8.16.0) tslib: 2.6.2 value-or-promise: 1.0.12 - ws: 8.16.0(utf-8-validate@6.0.3) + ws: 8.16.0 transitivePeerDependencies: - '@types/node' - bufferutil @@ -2096,19 +2061,6 @@ packages: graphql: 16.8.1 tslib: 2.6.2 - /@graphql-tools/utils@10.0.8(graphql@16.8.1): - resolution: {integrity: sha512-yjyA8ycSa1WRlJqyX/aLqXeE5DvF/H02+zXMUFnCzIDrj0UvLMUrxhmVFnMK0Q2n3bh4uuTeY3621m5za9ovXw==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - cross-inspect: 1.0.0 - dset: 3.1.3 - graphql: 16.8.1 - tslib: 2.6.2 - dev: false - /@graphql-tools/wrap@10.0.1(graphql@16.8.1): resolution: {integrity: sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==} engines: {node: '>=16.0.0'} @@ -2635,7 +2587,7 @@ packages: - supports-color - tedious - /@mikro-orm/nestjs@5.2.3(@mikro-orm/core@5.9.7)(@nestjs/common@10.3.1)(@nestjs/core@10.3.1): + /@mikro-orm/nestjs@5.2.3(@mikro-orm/core@5.9.7)(@nestjs/common@10.3.2)(@nestjs/core@10.3.2): resolution: {integrity: sha512-JMxaXrNXlo6j59D3LWMC1tEC1a5JanCtqdfv91JUH0sfVZh97SsjQ9K794BY3JWIUKSFyQwpnLxYZ0Ash/BlPA==} engines: {node: '>= 14.0.0'} peerDependencies: @@ -2644,8 +2596,8 @@ packages: '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 dependencies: '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.1(@nestjs/common@10.3.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/core': 10.3.2(@nestjs/common@10.3.2)(reflect-metadata@0.2.1)(rxjs@7.8.1) dev: false /@mikro-orm/postgresql@5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7): @@ -2678,12 +2630,12 @@ packages: - supports-color - tedious - /@nestjs/common@10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1): - resolution: {integrity: sha512-YuxeIlVemVQCuXMkNbBpNlmwZgp/Cu6dwCOjki63mhyYHEFX48GNNA4zZn5MFRjF4h7VSceABsScROuzsxs9LA==} + /@nestjs/common@10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1): + resolution: {integrity: sha512-yrtohmQlN5J/gFS/ui86SO+KIfUKeL39JPR3f/3AWgpz+duIfc9cGkfh7FGZQMfG9ZqXf7Zw+PRO9G+D4iEbPw==} peerDependencies: class-transformer: '*' class-validator: '*' - reflect-metadata: ^0.1.12 + reflect-metadata: ^0.1.12 || ^0.2.0 rxjs: ^7.1.0 peerDependenciesMeta: class-transformer: @@ -2700,15 +2652,15 @@ packages: uid: 2.0.2 dev: false - /@nestjs/core@10.3.1(@nestjs/common@10.3.1)(reflect-metadata@0.2.1)(rxjs@7.8.1): - resolution: {integrity: sha512-mh6FwTKh2R3CmLRuB50BF5q/lzc+Mz+7qAlEvpgCiTSIfSXzbQ47vWpfgLirwkL3SlCvtFS8onxOeI69RpxvXA==} + /@nestjs/core@10.3.2(@nestjs/common@10.3.2)(reflect-metadata@0.2.1)(rxjs@7.8.1): + resolution: {integrity: sha512-JW3bQvDFY1gB+xXR6E5DzCdKftRszyWtd0YyDkdlKh1+44e2IGybFhSa5HcQBOiRqdVgPqAM5Vqc81rmhgeBnQ==} requiresBuild: true peerDependencies: '@nestjs/common': ^10.0.0 '@nestjs/microservices': ^10.0.0 '@nestjs/platform-express': ^10.0.0 '@nestjs/websockets': ^10.0.0 - reflect-metadata: ^0.1.12 + reflect-metadata: ^0.1.12 || ^0.2.0 rxjs: ^7.1.0 peerDependenciesMeta: '@nestjs/microservices': @@ -2718,7 +2670,7 @@ packages: '@nestjs/websockets': optional: true dependencies: - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) '@nuxtjs/opencollective': 0.3.2 fast-safe-stringify: 2.1.1 iterare: 1.2.1 @@ -2731,8 +2683,8 @@ packages: - encoding dev: false - /@nestjs/graphql@12.0.11(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.8.1)(reflect-metadata@0.2.1)(utf-8-validate@6.0.3): - resolution: {integrity: sha512-iCyVs9+utCQt9ehMhUjQcEdjRN/MrcTBINd7P44O1fzGENuWMbt1Z8RCoZbeGi5iVPBY63HgYik+BnnICqmxZw==} + /@nestjs/graphql@12.1.1(@nestjs/common@10.3.2)(@nestjs/core@10.3.2)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.8.1)(reflect-metadata@0.2.1)(utf-8-validate@6.0.3): + resolution: {integrity: sha512-Y2fPrB1bCzkSFEhE5prAJM6dGUwJwBhKSH4rkg5LRSrQnb89kqmELRreaWtisECSnA25mb4MjaRKA3svX1toBg==} peerDependencies: '@apollo/subgraph': ^2.0.0 '@nestjs/common': ^9.3.8 || ^10.0.0 @@ -2740,8 +2692,8 @@ packages: class-transformer: '*' class-validator: '*' graphql: ^16.6.0 - reflect-metadata: ^0.1.13 - ts-morph: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 + reflect-metadata: ^0.1.13 || ^0.2.0 + ts-morph: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 peerDependenciesMeta: '@apollo/subgraph': optional: true @@ -2752,62 +2704,62 @@ packages: ts-morph: optional: true dependencies: - '@graphql-tools/merge': 9.0.0(graphql@16.8.1) - '@graphql-tools/schema': 10.0.0(graphql@16.8.1) - '@graphql-tools/utils': 10.0.8(graphql@16.8.1) - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.1(@nestjs/common@10.3.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/mapped-types': 2.0.2(@nestjs/common@10.3.1)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1) - chokidar: 3.5.3 + '@graphql-tools/merge': 9.0.1(graphql@16.8.1) + '@graphql-tools/schema': 10.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.13(graphql@16.8.1) + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/core': 10.3.2(@nestjs/common@10.3.2)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/mapped-types': 2.0.5(@nestjs/common@10.3.2)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1) + chokidar: 3.6.0 class-transformer: 0.5.1 class-validator: 0.14.1 fast-glob: 3.3.2 graphql: 16.8.1 graphql-tag: 2.12.6(graphql@16.8.1) - graphql-ws: 5.14.2(graphql@16.8.1) + graphql-ws: 5.14.3(graphql@16.8.1) lodash: 4.17.21 normalize-path: 3.0.0 reflect-metadata: 0.2.1 subscriptions-transport-ws: 0.11.0(graphql@16.8.1)(utf-8-validate@6.0.3) tslib: 2.6.2 uuid: 9.0.1 - ws: 8.14.2(utf-8-validate@6.0.3) + ws: 8.16.0(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - utf-8-validate dev: false - /@nestjs/jwt@10.2.0(@nestjs/common@10.3.1): + /@nestjs/jwt@10.2.0(@nestjs/common@10.3.2): resolution: {integrity: sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 dependencies: - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) '@types/jsonwebtoken': 9.0.5 jsonwebtoken: 9.0.2 dev: false - /@nestjs/mapped-types@2.0.2(@nestjs/common@10.3.1)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1): - resolution: {integrity: sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg==} + /@nestjs/mapped-types@2.0.5(@nestjs/common@10.3.2)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1): + resolution: {integrity: sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 class-transformer: ^0.4.0 || ^0.5.0 class-validator: ^0.13.0 || ^0.14.0 - reflect-metadata: ^0.1.12 + reflect-metadata: ^0.1.12 || ^0.2.0 peerDependenciesMeta: class-transformer: optional: true class-validator: optional: true dependencies: - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) class-transformer: 0.5.1 class-validator: 0.14.1 reflect-metadata: 0.2.1 dev: false - /@nestjs/mercurius@12.0.11(@mercuriusjs/gateway@2.2.0)(@nestjs/common@10.3.1)(@nestjs/graphql@12.0.11)(fastify@4.25.2)(graphql@16.8.1)(mercurius@13.3.3): - resolution: {integrity: sha512-1YKnn6cnk4HUki6Q9QK5XSneqD9igXQWEpgQgeRszdGvpHTXcS8eoASp5JoMp9g9tYi/ZDN8fR5gJ7d3+O0MTQ==} + /@nestjs/mercurius@12.1.1(@mercuriusjs/gateway@2.2.0)(@nestjs/common@10.3.2)(@nestjs/graphql@12.1.1)(fastify@4.26.0)(graphql@16.8.1)(mercurius@13.3.3): + resolution: {integrity: sha512-grBeL5o90aSMRJXw4Ewwj6eUnNL/KmqfG7rYekgnGHdstdzei5MmtS1Pu+gOiE5kkkwYcEBYiBxduyzYup4d7A==} peerDependencies: '@apollo/subgraph': ^2.0.0 '@mercuriusjs/federation': ^1.0.0 || ^2.0.0 @@ -2826,28 +2778,28 @@ packages: optional: true dependencies: '@mercuriusjs/gateway': 2.2.0(utf-8-validate@6.0.3) - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/graphql': 12.0.11(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.8.1)(reflect-metadata@0.2.1)(utf-8-validate@6.0.3) - fastify: 4.25.2 + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/graphql': 12.1.1(@nestjs/common@10.3.2)(@nestjs/core@10.3.2)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.8.1)(reflect-metadata@0.2.1)(utf-8-validate@6.0.3) + fastify: 4.26.0 graphql: 16.8.1 mercurius: 13.3.3(graphql@16.8.1)(utf-8-validate@6.0.3) tslib: 2.6.2 dev: false - /@nestjs/passport@10.0.3(@nestjs/common@10.3.1)(passport@0.7.0): + /@nestjs/passport@10.0.3(@nestjs/common@10.3.2)(passport@0.7.0): resolution: {integrity: sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 passport: ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 dependencies: - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) passport: 0.7.0 dev: false - /@nestjs/platform-fastify@10.3.1(@nestjs/common@10.3.1)(@nestjs/core@10.3.1): - resolution: {integrity: sha512-JOoabswdTCa2/RcVGxANJfRTbuTBk6ukoe2Z0patCA33XVrM6bIGcRHNcUrN6hgu79cGicreH6xaJfQlHLCtvg==} + /@nestjs/platform-fastify@10.3.2(@nestjs/common@10.3.2)(@nestjs/core@10.3.2): + resolution: {integrity: sha512-VWxsB2Ew40Tb7Za/5Eo5Fc9vHT/Md34uCuehI3Si5ZU1iDG8ZzSjJuKzpXQiN9B9syyANHHJbZHnY+XXUSpleQ==} peerDependencies: - '@fastify/static': ^6.0.0 + '@fastify/static': ^6.0.0 || ^7.0.0 '@fastify/view': ^7.0.0 || ^8.0.0 '@nestjs/common': ^10.0.0 '@nestjs/core': ^10.0.0 @@ -2857,12 +2809,12 @@ packages: '@fastify/view': optional: true dependencies: - '@fastify/cors': 8.5.0 + '@fastify/cors': 9.0.1 '@fastify/formbody': 7.4.0 '@fastify/middie': 8.3.0 - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.1(@nestjs/common@10.3.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - fastify: 4.25.2 + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/core': 10.3.2(@nestjs/common@10.3.2)(reflect-metadata@0.2.1)(rxjs@7.8.1) + fastify: 4.26.0 light-my-request: 5.11.0 path-to-regexp: 3.2.0 tslib: 2.6.2 @@ -2870,17 +2822,15 @@ packages: - supports-color dev: false - /@nestjs/schedule@4.0.0(@nestjs/common@10.3.1)(@nestjs/core@10.3.1)(reflect-metadata@0.2.1): - resolution: {integrity: sha512-zz4h54m/F/1qyQKvMJCRphmuwGqJltDAkFxUXCVqJBXEs5kbPt93Pza3heCQOcMH22MZNhGlc9DmDMLXVHmgVQ==} + /@nestjs/schedule@4.0.1(@nestjs/common@10.3.2)(@nestjs/core@10.3.2): + resolution: {integrity: sha512-cz2FNjsuoma+aGsG0cMmG6Dqg/BezbBWet1UTHtAuu6d2mXNTVcmoEQM2DIVG5Lfwb2hfSE2yZt8Moww+7y+mA==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 - reflect-metadata: ^0.1.12 dependencies: - '@nestjs/common': 10.3.1(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - '@nestjs/core': 10.3.1(@nestjs/common@10.3.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) - cron: 3.1.3 - reflect-metadata: 0.2.1 + '@nestjs/common': 10.3.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.1)(rxjs@7.8.1) + '@nestjs/core': 10.3.2(@nestjs/common@10.3.2)(reflect-metadata@0.2.1)(rxjs@7.8.1) + cron: 3.1.6 uuid: 9.0.1 dev: false @@ -2906,7 +2856,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + fastq: 1.17.1 /@nuxtjs/opencollective@0.3.2: resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} @@ -3121,15 +3071,15 @@ packages: resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} dev: true - /@preact/compat@17.1.2(preact@10.19.3): + /@preact/compat@17.1.2(preact@10.19.4): resolution: {integrity: sha512-7pOZN9lMDDRQ+6aWvjwTp483KR8/zOpfS83wmOo3zfuLKdngS8/5RLbsFWzFZMGdYlotAhX980hJ75bjOHTwWg==} peerDependencies: preact: '*' dependencies: - preact: 10.19.3 + preact: 10.19.4 dev: true - /@preact/preset-vite@2.8.1(@babel/core@7.23.9)(preact@10.19.3)(vite@5.0.12): + /@preact/preset-vite@2.8.1(@babel/core@7.23.9)(preact@10.19.4)(vite@5.1.1): resolution: {integrity: sha512-a9KV4opdj17X2gOFuGup0aE+sXYABX/tJi/QDptOrleX4FlnoZgDWvz45tHOdVfrZX+3uvVsIYPHxRsTerkDNA==} peerDependencies: '@babel/core': 7.x @@ -3138,7 +3088,7 @@ packages: '@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) - '@prefresh/vite': 2.4.5(preact@10.19.3)(vite@5.0.12) + '@prefresh/vite': 2.4.5(preact@10.19.4)(vite@5.1.1) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.23.9) debug: 4.3.4 @@ -3146,7 +3096,7 @@ packages: magic-string: 0.30.5 node-html-parser: 6.1.12 resolve: 1.22.8 - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 transitivePeerDependencies: - preact - supports-color @@ -3156,19 +3106,19 @@ packages: resolution: {integrity: sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==} dev: true - /@prefresh/core@1.5.2(preact@10.19.3): + /@prefresh/core@1.5.2(preact@10.19.4): resolution: {integrity: sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==} peerDependencies: preact: ^10.0.0 dependencies: - preact: 10.19.3 + preact: 10.19.4 dev: true /@prefresh/utils@1.2.0: resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} dev: true - /@prefresh/vite@2.4.5(preact@10.19.3)(vite@5.0.12): + /@prefresh/vite@2.4.5(preact@10.19.4)(vite@5.1.1): resolution: {integrity: sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==} peerDependencies: preact: ^10.4.0 @@ -3176,11 +3126,11 @@ packages: dependencies: '@babel/core': 7.23.9 '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.2(preact@10.19.3) + '@prefresh/core': 1.5.2(preact@10.19.4) '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 - preact: 10.19.3 - vite: 5.0.12(@types/node@20.11.7) + preact: 10.19.4 + vite: 5.1.1 transitivePeerDependencies: - supports-color dev: true @@ -3191,7 +3141,7 @@ packages: '@babel/runtime': 7.23.9 dev: true - /@radix-ui/react-arrow@1.0.3(@types/react@18.2.48): + /@radix-ui/react-arrow@1.0.3(@types/react@18.2.55): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -3203,11 +3153,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-collection@1.0.3(@types/react@18.2.48): + /@radix-ui/react-collection@1.0.3(@types/react@18.2.55): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -3219,14 +3169,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.48): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -3235,10 +3185,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-context@1.0.1(@types/react@18.2.48): + /@radix-ui/react-context@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -3247,10 +3197,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-direction@1.0.1(@types/react@18.2.48): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -3259,10 +3209,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-dismissable-layer@1.0.5(@types/react@18.2.48): + /@radix-ui/react-dismissable-layer@1.0.5(@types/react@18.2.55): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -3275,14 +3225,14 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-dropdown-menu@2.0.6(@types/react@18.2.48): + /@radix-ui/react-dropdown-menu@2.0.6(@types/react@18.2.55): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -3295,16 +3245,16 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-menu': 2.0.6(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-menu': 2.0.6(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.48): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -3313,10 +3263,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-focus-scope@1.0.4(@types/react@18.2.48): + /@radix-ui/react-focus-scope@1.0.4(@types/react@18.2.55): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -3328,13 +3278,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-id@1.0.1(@types/react@18.2.48): + /@radix-ui/react-id@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -3343,11 +3293,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-menu@2.0.6(@types/react@18.2.48): + /@radix-ui/react-menu@2.0.6(@types/react@18.2.55): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -3360,27 +3310,27 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.48) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.48) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-popper': 1.1.3(@types/react@18.2.48) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.48) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.48) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-collection': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.55) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.55) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-popper': 1.1.3(@types/react@18.2.55) + '@radix-ui/react-portal': 1.0.4(@types/react@18.2.55) + '@radix-ui/react-presence': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.55) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.55) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 aria-hidden: 1.2.3 - react-remove-scroll: 2.5.5(@types/react@18.2.48) + react-remove-scroll: 2.5.5(@types/react@18.2.55) dev: true - /@radix-ui/react-popper@1.1.3(@types/react@18.2.48): + /@radix-ui/react-popper@1.1.3(@types/react@18.2.55): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -3393,19 +3343,19 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@floating-ui/react-dom': 2.0.7 - '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.48) + '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.55) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-portal@1.0.4(@types/react@18.2.48): + /@radix-ui/react-portal@1.0.4(@types/react@18.2.55): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -3417,11 +3367,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-presence@1.0.1(@types/react@18.2.48): + /@radix-ui/react-presence@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -3433,12 +3383,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-primitive@1.0.3(@types/react@18.2.48): + /@radix-ui/react-primitive@1.0.3(@types/react@18.2.55): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -3450,11 +3400,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.48): + /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.55): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -3467,18 +3417,18 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.48) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-collection': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.55) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-slot@1.0.2(@types/react@18.2.48): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.55): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -3487,11 +3437,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.48): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -3500,10 +3450,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.48): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -3512,11 +3462,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.48): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.55): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -3525,11 +3475,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.48): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -3538,10 +3488,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.48): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -3551,10 +3501,10 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.48 + '@types/react': 18.2.55 dev: true - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.48): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.55): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -3563,8 +3513,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48) - '@types/react': 18.2.48 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.55) + '@types/react': 18.2.55 dev: true /@radix-ui/rect@1.0.1: @@ -3585,104 +3535,104 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/rollup-android-arm-eabi@4.9.6: - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + /@rollup/rollup-android-arm-eabi@4.10.0: + resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.6: - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + /@rollup/rollup-android-arm64@4.10.0: + resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.6: - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + /@rollup/rollup-darwin-arm64@4.10.0: + resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.6: - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + /@rollup/rollup-darwin-x64@4.10.0: + resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.10.0: + resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + /@rollup/rollup-linux-arm64-gnu@4.10.0: + resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + /@rollup/rollup-linux-arm64-musl@4.10.0: + resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + /@rollup/rollup-linux-riscv64-gnu@4.10.0: + resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.6: - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + /@rollup/rollup-linux-x64-gnu@4.10.0: + resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.6: - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + /@rollup/rollup-linux-x64-musl@4.10.0: + resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.6: - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + /@rollup/rollup-win32-arm64-msvc@4.10.0: + resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.6: - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + /@rollup/rollup-win32-ia32-msvc@4.10.0: + resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.6: - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + /@rollup/rollup-win32-x64-msvc@4.10.0: + resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -3706,8 +3656,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@swc/core-darwin-arm64@1.3.106: - resolution: {integrity: sha512-XYcbViNyHnnm7RWOAO1YipMmthM7m2aXF32b0y+JMLYFBEyFpjVX9btLkzeL7wRx/5B3I35yJNhE+xyx0Q1Gkw==} + /@swc/core-darwin-arm64@1.4.0: + resolution: {integrity: sha512-UTJ/Vz+s7Pagef6HmufWt6Rs0aUu+EJF4Pzuwvr7JQQ5b1DZeAAUeUtkUTFx/PvCbM8Xfw4XdKBUZfrIKCfW8A==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -3715,8 +3665,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.3.106: - resolution: {integrity: sha512-YKDPhUdfuwhmOUS9+CaIwl/0Tp+f1b73BH2EIESuxSNsogZf18a8HQ8O0fQEwdiwmA5LEqw47cj+kfOWV/0+kw==} + /@swc/core-darwin-x64@1.4.0: + resolution: {integrity: sha512-f8v58u2GsGak8EtZFN9guXqE0Ep10Suny6xriaW2d8FGqESPyNrnBzli3aqkSeQk5gGqu2zJ7WiiKp3XoUOidA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -3724,8 +3674,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.3.106: - resolution: {integrity: sha512-bHxxJXogvFfocLL5inZxxtx/x/WgKozigp80Vbx0viac1fPDJrqKBw2X4MzpMiuTRAGVQ03jJI6pDwbSBf+yDw==} + /@swc/core-linux-arm-gnueabihf@1.4.0: + resolution: {integrity: sha512-q2KAkBzmPcTnRij/Y1fgHCKAGevUX/H4uUESrw1J5gmUg9Qip6onKV80lTumA1/aooGJ18LOsB31qdbwmZk9OA==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -3733,8 +3683,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.3.106: - resolution: {integrity: sha512-c7jue++CHLgtpeaakEukoCLT9eNrImizbleE9Y7Is8CHqLq/7DG4s+7ma9DFKXIzW2MpTg9byIEQfpqSphVW6A==} + /@swc/core-linux-arm64-gnu@1.4.0: + resolution: {integrity: sha512-SknGu96W0mzHtLHWm+62fk5+Omp9fMPFO7AWyGFmz2tr8EgRRXtTSrBUnWhAbgcalnhen48GsvtMdxf1KNputg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -3742,8 +3692,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.3.106: - resolution: {integrity: sha512-51EaC3Q8qAhLtWVnAVqoYX/gk3tK31cCBzUpwCcmhianhEBM2/WtKRAS4MqPhE8VVZuN3WjO2c2JaF2mX0yuoA==} + /@swc/core-linux-arm64-musl@1.4.0: + resolution: {integrity: sha512-/k3TDvpBRMDNskHooNN1KqwUhcwkfBlIYxRTnJvsfT2C7My4pffR+4KXmt0IKynlTTbCdlU/4jgX4801FSuliw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -3751,8 +3701,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.3.106: - resolution: {integrity: sha512-tOUi8BB6jAeCXgx7ESLNnX7nrbMVKQ/XajK77v7Ad4SXf9HYArnimBJpXUUyVFJTXLSv4e6c7s6XHHqXb5Lwcg==} + /@swc/core-linux-x64-gnu@1.4.0: + resolution: {integrity: sha512-GYsTMvNt5+WTVlwwQzOOWsPMw6P/F41u5PGHWmfev8Nd4QJ1h3rWPySKk4mV42IJwH9MgQCVSl3ygwNqwl6kFg==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -3760,8 +3710,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.3.106: - resolution: {integrity: sha512-binLw4Lbd83NPy4/m/teH2nbaifxveSD+sKDvpxywRbvYW2I0w/iCBpUBcbnl16TQF4TPOGpq5YwG9lVxPVw5g==} + /@swc/core-linux-x64-musl@1.4.0: + resolution: {integrity: sha512-jGVPdM/VwF7kK/uYRW5N6FwzKf/FnDjGIR3RPvQokjYJy7Auk+3Oj21C0Jev7sIT9RYnO/TrFEoEozKeD/z2Qw==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -3769,8 +3719,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.3.106: - resolution: {integrity: sha512-n4ttBWr8tM7DPzwcEOIBTyTMHZTzCmbic/HTtxEsPyMAf/Daen+yrTKzjPP6k2usfSrjkxA780RSJJxI1N8r2w==} + /@swc/core-win32-arm64-msvc@1.4.0: + resolution: {integrity: sha512-biHYm1AronEKlt47O/H8sSOBM2BKXMmWT+ApvlxUw50m1RGNnVnE0bgY7tylFuuSiWyXsQPJbmUV708JqORXVg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -3778,8 +3728,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.3.106: - resolution: {integrity: sha512-GhDNIwxE5FhkujESI6h/4ysT3wxwmrzTUlZYaR8rRui6a6SdX9feIPUHPEE5o5hpyp+xqlmvRxKkRxOnwsq8iA==} + /@swc/core-win32-ia32-msvc@1.4.0: + resolution: {integrity: sha512-TL5L2tFQb19kJwv6+elToGBj74QXCn9j+hZfwQatvZEJRA5rDK16eH6oAE751dGUArhnWlW3Vj65hViPvTuycw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -3787,8 +3737,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.3.106: - resolution: {integrity: sha512-2M6yWChuMS1+/MPo3Dor0SOMkvmiugonWlzsZBAu/oZboH2xKrHSRv7brsBujb2Oe47r+NsbV+vq9tnnP9Vl1Q==} + /@swc/core-win32-x64-msvc@1.4.0: + resolution: {integrity: sha512-e2xVezU7XZ2Stzn4i7TOQe2Kn84oYdG0M3A7XI7oTdcpsKCcKwgiMoroiAhqCv+iN20KNqhnWwJiUiTj/qN5AA==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -3796,8 +3746,8 @@ packages: dev: true optional: true - /@swc/core@1.3.106: - resolution: {integrity: sha512-++QPSPkFq2qELYVScxNHJC42hKQChjiTWS2P0QQ5JWT4NHb9lmNSfrc1ylFIyImwRnxsW2MTBALLYLf95EFAsg==} + /@swc/core@1.4.0: + resolution: {integrity: sha512-wc5DMI5BJftnK0Fyx9SNJKkA0+BZSJQx8430yutWmsILkHMBD3Yd9GhlMaxasab9RhgKqZp7Ht30hUYO5ZDvQg==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -3806,23 +3756,23 @@ packages: '@swc/helpers': optional: true dependencies: - '@swc/counter': 0.1.2 + '@swc/counter': 0.1.3 '@swc/types': 0.1.5 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.106 - '@swc/core-darwin-x64': 1.3.106 - '@swc/core-linux-arm-gnueabihf': 1.3.106 - '@swc/core-linux-arm64-gnu': 1.3.106 - '@swc/core-linux-arm64-musl': 1.3.106 - '@swc/core-linux-x64-gnu': 1.3.106 - '@swc/core-linux-x64-musl': 1.3.106 - '@swc/core-win32-arm64-msvc': 1.3.106 - '@swc/core-win32-ia32-msvc': 1.3.106 - '@swc/core-win32-x64-msvc': 1.3.106 + '@swc/core-darwin-arm64': 1.4.0 + '@swc/core-darwin-x64': 1.4.0 + '@swc/core-linux-arm-gnueabihf': 1.4.0 + '@swc/core-linux-arm64-gnu': 1.4.0 + '@swc/core-linux-arm64-musl': 1.4.0 + '@swc/core-linux-x64-gnu': 1.4.0 + '@swc/core-linux-x64-musl': 1.4.0 + '@swc/core-win32-arm64-msvc': 1.4.0 + '@swc/core-win32-ia32-msvc': 1.4.0 + '@swc/core-win32-x64-msvc': 1.4.0 dev: true - /@swc/counter@0.1.2: - resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} dev: true /@swc/types@0.1.5: @@ -3872,7 +3822,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/bytes@3.1.4: @@ -3882,7 +3832,7 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/debug@4.1.12: @@ -3895,6 +3845,13 @@ packages: resolution: {integrity: sha512-kRiitIeUg1mPV9yH4VUJ/1uk2XjyANfeL8/7rH1tsjvHeO9PJLBHJIYsFWmAvmGj5u8rj+1TZx7PZzW2qLw3Lw==} dev: true + /@types/eslint@8.56.2: + resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + /@types/estree-jsx@1.0.3: resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} dependencies: @@ -3908,7 +3865,7 @@ packages: /@types/express-serve-static-core@4.17.42: resolution: {integrity: sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3926,7 +3883,7 @@ packages: /@types/fluent-ffmpeg@2.1.24: resolution: {integrity: sha512-g5oQO8Jgi2kFS3tTub7wLvfLztr1s8tdXmRd8PiL/hLMLzTIAyMR2sANkTggM/rdEDAg3d63nYRRVepwBiCw5A==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/hast@3.0.3: @@ -3938,7 +3895,7 @@ packages: /@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} dependencies: - '@types/react': 18.2.48 + '@types/react': 18.2.55 hoist-non-react-statics: 3.3.2 dev: true @@ -3965,7 +3922,7 @@ packages: /@types/jsonwebtoken@9.0.5: resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 /@types/luxon@3.3.8: resolution: {integrity: sha512-jYvz8UMLDgy3a5SkGJne8H7VA7zPV2Lwohjx0V8V31+SqAjNmurWMkk9cQhfvlcnXWudBpK9xPM1n4rljOcHYQ==} @@ -4001,15 +3958,15 @@ packages: resolution: {integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==} dev: true - /@types/node@20.11.7: - resolution: {integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==} + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} dependencies: undici-types: 5.26.5 /@types/nodemailer@6.4.14: resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/normalize-package-data@2.4.4: @@ -4052,8 +4009,8 @@ packages: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true - /@types/react@18.2.48: - resolution: {integrity: sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==} + /@types/react@18.2.55: + resolution: {integrity: sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -4072,7 +4029,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/serve-static@1.15.5: @@ -4080,7 +4037,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/unist@2.0.10: @@ -4094,7 +4051,7 @@ packages: /@types/utf-8-validate@5.0.2: resolution: {integrity: sha512-ta7cOkEiNr0RGKARljNBaI7E1GBIr3VwS9RrSoQRmbdv1RVq7Q6VhjSGmQHYNt3nHn051qZBKKrpnw7cnEMDuQ==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@types/validator@13.11.8: @@ -4104,7 +4061,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 dev: true /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3): @@ -4129,7 +4086,7 @@ packages: graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -4205,7 +4162,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -4225,7 +4182,7 @@ packages: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) eslint: 8.56.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -4273,108 +4230,108 @@ packages: - graphql dev: true - /@urql/preact@4.0.4(graphql@16.8.1)(preact@10.19.3): + /@urql/preact@4.0.4(graphql@16.8.1)(preact@10.19.4): resolution: {integrity: sha512-VqDJzL63qvcLnbUXILul+6LQOztCWO/jYV3UoLm57BoAIjBTCcNQaAFivLPEq/YgyysdIyDTj66trS/Z+R18Sw==} peerDependencies: preact: '>= 10.0.0' dependencies: '@urql/core': 4.2.3(graphql@16.8.1) - preact: 10.19.3 + preact: 10.19.4 wonka: 6.3.4 transitivePeerDependencies: - graphql dev: true - /@vavite/connect@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-wEEjsKXUvmOEzQ5jJm33AAKmX9tNwjuxmTA5CHwHzria4QcjRUxgONo0jjhvIY4S+e9/gkf6e24rREjAGfgcfA==} + /@vavite/connect@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-HykADNw7qS+0MZoYbV8v5HYZadGDfBedZy2HZ9WoERF+xtlGRow5w50EreE+sgMd7CphCZ9+VBL2N2TlG3uJOQ==} peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - '@types/node': 20.11.7 - vite: 5.0.12(@types/node@20.11.7) + '@types/node': 20.11.17 + vite: 5.1.1 dev: true - /@vavite/expose-vite-dev-server@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-gUzcMxAjw/NRMRxI/bBJEYA8AnrIpto0yilGMI2HRSuNo2CcTPpOPNDkZEUpCfM/vlXhIaPTVRmLxuaQmlmsaQ==} + /@vavite/expose-vite-dev-server@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-GAJ6rSfASudHzpzlRarKZRhXHTs9R0pDHFDAe+CfpEGD//UB7GK/Tdvy5lnS0D3RkXttG+o3MkHVjqVfZcACNw==} peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true - /@vavite/multibuild-cli@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-v4OmeewB1/z+OLazAlCz8jHzQ5wPnhlT5qPPkFLocPUMgnicB8G/mZMcgBFQ/gBLGd/lBtQB/5aZoBZSwLi4kQ==} + /@vavite/multibuild-cli@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-j9V1so1ls1PHM/0MeM/DbBbVqdzuX+/xMEq1emi3ZBeluyDbi146Xuf6xfxETkExHvIbYPSYCyys755yC1Dp5A==} hasBin: true peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - '@types/node': 20.11.7 - '@vavite/multibuild': 4.0.2(vite@5.0.12) + '@types/node': 20.11.17 + '@vavite/multibuild': 4.0.3(vite@5.1.1) cac: 6.7.14 picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true - /@vavite/multibuild@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-pkaPDiSCFmTGiuF1qIkyjZcK4+tSEzIFJP5Ge4UXhf03X2JDR+/8SCIp0Nkj+n8fRSsQquk2naSkmoA8oGQFvw==} + /@vavite/multibuild@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-Yp5Gf/B0VeoGOoN8bX5BIvJ99yJ4DD2pXMTj0NcZMRTOhhWxRIN5VLrOB4jV1eo/DLi5bHibh2iAiJZCe/YNMQ==} peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.17 cac: 6.7.14 picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true - /@vavite/node-loader@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-8bPk16xYLThZEMWdFTuyD80WBzZ6pEQrqyylohlUG5WzHe7eJ1oDdqlRDikpMq2V6tKcd4dw148wZkrpFSVVWA==} + /@vavite/node-loader@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-fsYuvsMP9a+nyHIR7m+v/Mhh4Zdhlg9W3pW1Bh9RhBGVD+ZaDi3kWFrWCAifdHpCE3Tf1fjAmtWBYFLRxBZGjA==} hasBin: true peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true - /@vavite/reloader@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-BfATs/3BO8TSo4dVBB30Ku2MhWN5AuaiJSf9isRjLNVBf+wHDy6RgyDO6M9A9fzH1cAZGN2SeGRxZLYuX2Bp/g==} + /@vavite/reloader@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-GgCQKOjnn1VjXl5dEjDGXSTI9XZ/bzqmN+R8swgftEGVlew2whCEZemJQUhnkQkzqvs+gQen7Y0bDhqA2LVHew==} peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true - /@vitest/expect@1.2.1: - resolution: {integrity: sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==} + /@vitest/expect@1.2.2: + resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} dependencies: - '@vitest/spy': 1.2.1 - '@vitest/utils': 1.2.1 + '@vitest/spy': 1.2.2 + '@vitest/utils': 1.2.2 chai: 4.4.1 dev: true - /@vitest/runner@1.2.1: - resolution: {integrity: sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==} + /@vitest/runner@1.2.2: + resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} dependencies: - '@vitest/utils': 1.2.1 + '@vitest/utils': 1.2.2 p-limit: 5.0.0 pathe: 1.1.2 dev: true - /@vitest/snapshot@1.2.1: - resolution: {integrity: sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==} + /@vitest/snapshot@1.2.2: + resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} dependencies: - magic-string: 0.30.5 + magic-string: 0.30.7 pathe: 1.1.2 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.2.1: - resolution: {integrity: sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==} + /@vitest/spy@1.2.2: + resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} dependencies: - tinyspy: 2.2.0 + tinyspy: 2.2.1 dev: true - /@vitest/utils@1.2.1: - resolution: {integrity: sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==} + /@vitest/utils@1.2.2: + resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -4405,7 +4362,7 @@ packages: resolution: {integrity: sha512-mqasZiUNquRe3ea9+aCAuo81BR6vq5opUKprPilIHTnrg8a21Z1T1OrI+KiMFX8OmwO5HUJe/vro47lpj2JPWQ==} engines: {node: '>=16.0.0'} dependencies: - '@whatwg-node/node-fetch': 0.5.5 + '@whatwg-node/node-fetch': 0.5.6 urlpattern-polyfill: 10.0.0 dev: true @@ -4419,8 +4376,8 @@ packages: tslib: 2.6.2 dev: true - /@whatwg-node/node-fetch@0.5.5: - resolution: {integrity: sha512-LhE0Oo95+dOrrzrJncrpCaR3VHSjJ5Gvkl5g9WVfkPKSKkxCbMeOsRQ+v9LrU9lRvXBJn8JicXqSufKFEpyRbQ==} + /@whatwg-node/node-fetch@0.5.6: + resolution: {integrity: sha512-cmAsGMHoI0S3AHi3CmD3ma1Q234ZI2JNmXyDyM9rLtbXejBKxU3ZWdhS+mzRIAyUxZCMGlFW1tHmROv0MDdxpw==} engines: {node: '>=16.0.0'} dependencies: '@kamilkisiela/fast-url-parser': 1.1.4 @@ -4602,7 +4559,7 @@ packages: /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 is-array-buffer: 3.0.2 dev: true @@ -4610,10 +4567,10 @@ packages: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 is-string: 1.0.7 dev: true @@ -4625,18 +4582,18 @@ packages: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 @@ -4646,7 +4603,7 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 @@ -4655,11 +4612,11 @@ packages: /array.prototype.tosorted@1.1.2: resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -4667,10 +4624,10 @@ packages: engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 dev: true @@ -4720,7 +4677,7 @@ packages: engines: {node: '>=8'} dev: true - /autoprefixer@10.4.17(postcss@8.4.33): + /autoprefixer@10.4.17(postcss@8.4.35): resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -4732,7 +4689,7 @@ packages: fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true @@ -4741,12 +4698,13 @@ packages: engines: {node: '>= 0.4'} dev: true - /avvio@8.2.1: - resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} + /avvio@8.3.0: + resolution: {integrity: sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==} dependencies: + '@fastify/error': 3.4.1 archy: 1.0.0 debug: 4.3.4 - fastq: 1.16.0 + fastq: 1.17.1 transitivePeerDependencies: - supports-color @@ -4917,7 +4875,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /bundle-require@4.0.2(esbuild@0.19.12): @@ -4947,12 +4905,14 @@ packages: engines: {node: '>=8'} dev: true - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + /call-bind@1.0.6: + resolution: {integrity: sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.2.0 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 dev: true /callsites@3.1.0: @@ -5085,8 +5045,8 @@ packages: get-func-name: 2.0.2 dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -5251,22 +5211,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} - hasBin: true - dependencies: - chalk: 4.1.2 - date-fns: 2.30.0 - lodash: 4.17.21 - rxjs: 7.8.1 - shell-quote: 1.8.1 - spawn-command: 0.0.2 - supports-color: 8.1.1 - tree-kill: 1.2.2 - yargs: 17.7.2 - dev: true - /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: false @@ -5351,8 +5295,8 @@ packages: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - /cron@3.1.3: - resolution: {integrity: sha512-KVxeKTKYj2eNzN4ElnT6nRSbjbfhyxR92O/Jdp6SH3pc05CDJws59jBrZWEMQlxevCiE6QUTrXy+Im3vC3oD3A==} + /cron@3.1.6: + resolution: {integrity: sha512-cvFiQCeVzsA+QPM6fhjBtlKGij7tLLISnTSvFxVdnFGLdz+ZdXN37kNe0i2gefmdD17XuZA6n2uPVwzl4FxW/w==} dependencies: '@types/luxon': 3.3.8 luxon: 3.4.4 @@ -5414,13 +5358,6 @@ packages: resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} dev: true - /date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - dependencies: - '@babel/runtime': 7.23.9 - dev: true - /dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: true @@ -5493,11 +5430,12 @@ packages: clone: 1.0.4 dev: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + /define-data-property@1.1.2: + resolution: {integrity: sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.1 dev: true @@ -5506,7 +5444,7 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.2 has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -5628,8 +5566,8 @@ packages: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} - /dotenv@16.4.1: - resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} + /dotenv@16.4.2: + resolution: {integrity: sha512-rZSSFxke7d9nYQ5NeMIwp5PP+f8wXgKNljpOb7KtH6SKW1cEqcXAz9VSJYVLKe7Jhup/gUYOkaeSVyK8GJ+nBg==} engines: {node: '>=12'} dev: true @@ -5711,18 +5649,18 @@ packages: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + call-bind: 1.0.6 es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.1 internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 @@ -5749,16 +5687,21 @@ packages: which-typed-array: 1.1.13 dev: true + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + /es-iterator-helpers@1.0.15: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} dependencies: asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 es-set-tostringtag: 2.0.2 function-bind: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 globalthis: 1.0.3 has-property-descriptors: 1.0.1 has-proto: 1.0.1 @@ -5776,15 +5719,15 @@ packages: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-tostringtag: 1.0.0 - hasown: 2.0.0 + hasown: 2.0.1 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /es-to-primitive@1.2.1: @@ -5920,7 +5863,7 @@ packages: eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.0 + hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 @@ -5952,7 +5895,7 @@ packages: emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 eslint: 8.56.0 - hasown: 2.0.0 + hasown: 2.0.1 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 @@ -6024,7 +5967,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.5.4 + semver: 7.6.0 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color @@ -6243,10 +6186,10 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-json-stringify@5.10.0: - resolution: {integrity: sha512-fu1BhzPzgOdvK+sVhSPFzm06DQl0Dwbo+NQxWm21k03ili2wsJExXbGZ9qsD4Lsn7zFGltF8h9I1fuhk4JPnrQ==} + /fast-json-stringify@5.12.0: + resolution: {integrity: sha512-7Nnm9UPa7SfHRbHVA1kJQrGXCRzB7LMlAAqHXQFkEQqueJm1V8owm0FsE/2Do55/4CcdhwiLQERaKomOnKQkyA==} dependencies: - '@fastify/deepmerge': 1.3.0 + '@fastify/merge-json-schemas': 0.1.1 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) fast-deep-equal: 3.1.3 @@ -6283,24 +6226,24 @@ packages: /fastify-plugin@4.5.1: resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} - /fastify@4.25.2: - resolution: {integrity: sha512-SywRouGleDHvRh054onj+lEZnbC1sBCLkR0UY3oyJwjD4BdZJUrxBqfkfCaqn74pVCwBaRHGuL3nEWeHbHzAfw==} + /fastify@4.26.0: + resolution: {integrity: sha512-Fq/7ziWKc6pYLYLIlCRaqJqEVTIZ5tZYfcW/mDK2AQ9v/sqjGFpj0On0/7hU50kbPVjLO4de+larPA1WwPZSfw==} dependencies: '@fastify/ajv-compiler': 3.5.0 '@fastify/error': 3.4.1 '@fastify/fast-json-stringify-compiler': 4.3.0 abstract-logging: 2.0.1 - avvio: 8.2.1 + avvio: 8.3.0 fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.10.0 - find-my-way: 7.7.0 + fast-json-stringify: 5.12.0 + find-my-way: 8.1.0 light-my-request: 5.11.0 - pino: 8.17.2 + pino: 8.18.0 process-warning: 3.0.0 proxy-addr: 2.0.7 rfdc: 1.3.1 secure-json-parse: 2.7.0 - semver: 7.5.4 + semver: 7.6.0 toad-cache: 3.7.0 transitivePeerDependencies: - supports-color @@ -6312,8 +6255,8 @@ packages: xtend: 4.0.2 dev: false - /fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 @@ -6361,9 +6304,9 @@ packages: flat-cache: 3.2.0 dev: true - /file-type@18.7.0: - resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==} - engines: {node: '>=14.16'} + /file-type@19.0.0: + resolution: {integrity: sha512-s7cxa7/leUWLiXO78DVVfBVse+milos9FitauDLG1pI7lNaJ2+5lzPnr2N24ym+84HVwJL6hVuGfgVE+ALvU8Q==} + engines: {node: '>=18'} dependencies: readable-web-to-node-stream: 3.0.2 strtok3: 7.0.0 @@ -6376,8 +6319,8 @@ packages: dependencies: to-regex-range: 5.0.1 - /find-my-way@7.7.0: - resolution: {integrity: sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==} + /find-my-way@8.1.0: + resolution: {integrity: sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA==} engines: {node: '>=14'} dependencies: fast-deep-equal: 3.1.3 @@ -6481,7 +6424,7 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 functions-have-names: 1.2.3 @@ -6517,13 +6460,15 @@ packages: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.1 dev: true /get-nonce@1.0.1: @@ -6549,8 +6494,8 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 dev: true /getopts@2.3.0: @@ -6635,7 +6580,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /graceful-fs@4.2.11: @@ -6681,7 +6626,7 @@ packages: graphql: '>=15' dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - fast-json-stringify: 5.10.0 + fast-json-stringify: 5.12.0 generate-function: 2.3.1 graphql: 16.8.1 lodash.memoize: 4.1.2 @@ -6710,15 +6655,6 @@ packages: graphql: 16.8.1 tslib: 2.6.2 - /graphql-ws@5.14.2(graphql@16.8.1): - resolution: {integrity: sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w==} - engines: {node: '>=10'} - peerDependencies: - graphql: '>=0.11 <=16' - dependencies: - graphql: 16.8.1 - dev: false - /graphql-ws@5.14.3(graphql@16.8.1): resolution: {integrity: sha512-F/i2xNIVbaEF2xWggID0X/UZQa2V8kqKDPO8hwmu53bVOcTL7uNkxnexeEgSCVxYBQUTUNEI8+e4LO1FOhKPKQ==} engines: {node: '>=10'} @@ -6765,7 +6701,7 @@ packages: /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /has-proto@1.0.1: @@ -6785,8 +6721,8 @@ packages: has-symbols: 1.0.3 dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -6981,8 +6917,8 @@ packages: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 + get-intrinsic: 1.2.4 + hasown: 2.0.1 side-channel: 1.0.4 dev: true @@ -7022,8 +6958,8 @@ packages: /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 is-typed-array: 1.1.12 dev: true @@ -7058,7 +6994,7 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 has-tostringtag: 1.0.0 dev: true @@ -7077,7 +7013,7 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -7097,7 +7033,7 @@ packages: /is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 dev: true /is-fullwidth-code-point@3.0.0: @@ -7171,7 +7107,7 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 has-tostringtag: 1.0.0 dev: true @@ -7189,7 +7125,7 @@ packages: /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 dev: true /is-stream@2.0.1: @@ -7248,14 +7184,14 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 dev: true /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 dev: true /is-windows@1.0.2: @@ -7275,7 +7211,7 @@ packages: peerDependencies: ws: '*' dependencies: - ws: 8.16.0(utf-8-validate@6.0.3) + ws: 8.16.0 dev: true /istextorbinary@9.5.0: @@ -7300,7 +7236,7 @@ packages: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 set-function-name: 2.0.1 @@ -7320,8 +7256,8 @@ packages: hasBin: true dev: true - /jose@5.2.0: - resolution: {integrity: sha512-oW3PCnvyrcm1HMvGTzqjxxfnEs9EoFOFWi2HsEGhlFVOXxTE3K9GKWVMFoFw06yPUqwpvEWic1BmtUZBI/tIjw==} + /jose@5.2.2: + resolution: {integrity: sha512-/WByRr4jDcsKlvMd1dRJnPfS1GVO3WuKyaurJ/vvXcOaUQO8rnNObCQMlv/5uCceVQIq5Q4WLF44ohsdiTohdg==} dev: true /joycon@3.1.1: @@ -7385,7 +7321,7 @@ packages: resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 isarray: 2.0.5 jsonify: 0.0.1 object-keys: 1.1.1 @@ -7440,7 +7376,7 @@ packages: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.5.4 + semver: 7.6.0 dev: false /jsx-ast-utils@3.3.5: @@ -7747,6 +7683,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true @@ -8319,7 +8262,7 @@ packages: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.3.2 + ufo: 1.4.0 dev: true /mnemonist@0.39.6: @@ -8370,8 +8313,8 @@ packages: hasBin: true dev: true - /nanoid@5.0.4: - resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} + /nanoid@5.0.5: + resolution: {integrity: sha512-/Veqm+QKsyMY3kqi4faWplnY1u+VuKO3dD2binyPIybP31DRO29bPF+1mszgLnrR2KqSLceFLBNw0zmvDzN1QQ==} engines: {node: ^18 || >=20} hasBin: true dev: true @@ -8410,6 +8353,7 @@ packages: /node-gyp-build@4.8.0: resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} hasBin: true + dev: false /node-html-parser@6.1.12: resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} @@ -8426,8 +8370,8 @@ packages: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true - /nodemailer@6.9.8: - resolution: {integrity: sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==} + /nodemailer@6.9.9: + resolution: {integrity: sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==} engines: {node: '>=6.0.0'} dev: false @@ -8467,7 +8411,7 @@ packages: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-name: 5.0.0 dev: true @@ -8518,7 +8462,7 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -8528,7 +8472,7 @@ packages: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -8537,7 +8481,7 @@ packages: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -8545,10 +8489,10 @@ packages: /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /object.hasown@1.1.3: @@ -8562,7 +8506,7 @@ packages: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -8920,8 +8864,8 @@ packages: /pino-std-serializers@6.2.2: resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - /pino@8.17.2: - resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} + /pino@8.18.0: + resolution: {integrity: sha512-Mz/gKiRyuXu4HnpHgi1YWdHQCoWMufapzooisvFn78zl4dZciAxS+YeRkUxXl1ee/SzU80YCz1zpECCh4oC6Aw==} hasBin: true dependencies: atomic-sleep: 1.0.0 @@ -8958,29 +8902,29 @@ packages: resolution: {integrity: sha512-3IKLNXclQgkU++2fSi93sQ6BznFuxSLB11HdvZQ6JW/spahf/P1pAHBQEahr20rs0htZW0UDkM1HmA+nZkXKsw==} engines: {node: '>=12.0.0'} - /postcss-import@15.1.0(postcss@8.4.33): + /postcss-import@15.1.0(postcss@8.4.35): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.33): + /postcss-js@4.0.1(postcss@8.4.35): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-load-config@4.0.2(postcss@8.4.33): + /postcss-load-config@4.0.2(postcss@8.4.35): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -8993,7 +8937,7 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - postcss: 8.4.33 + postcss: 8.4.35 yaml: 2.3.4 dev: true @@ -9010,17 +8954,17 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - ts-node: 10.9.2(@swc/core@1.3.106)(@types/node@20.11.7)(typescript@5.3.3) + ts-node: 10.9.2(@swc/core@1.4.0)(@types/node@20.11.17)(typescript@5.3.3) yaml: 2.3.4 dev: true - /postcss-nested@6.0.1(postcss@8.4.33): + /postcss-nested@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true @@ -9044,8 +8988,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -9071,17 +9015,17 @@ packages: dependencies: xtend: 4.0.2 - /preact-render-to-string@6.3.1(preact@10.19.3): + /preact-render-to-string@6.3.1(preact@10.19.4): resolution: {integrity: sha512-NQ28WrjLtWY6lKDlTxnFpKHZdpjfF+oE6V4tZ0rTrunHrtZp6Dm0oFrcJalt/5PNeqJz4j1DuZDS0Y6rCBoqDA==} peerDependencies: preact: '>=10' dependencies: - preact: 10.19.3 + preact: 10.19.4 pretty-format: 3.8.0 dev: true - /preact@10.19.3: - resolution: {integrity: sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==} + /preact@10.19.4: + resolution: {integrity: sha512-dwaX5jAh0Ga8uENBX1hSOujmKWgx9RtL80KaKUFLc6jb4vCEAc3EeZ0rnQO/FO4VgjfPMfoLFWnNG8bHuZ9VLw==} dev: true /prelude-ls@1.2.1: @@ -9089,8 +9033,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -9245,13 +9189,13 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /react-markdown@9.0.1(@types/react@18.2.48): + /react-markdown@9.0.1(@types/react@18.2.55): resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' dependencies: '@types/hast': 3.0.3 - '@types/react': 18.2.48 + '@types/react': 18.2.55 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.0 @@ -9265,7 +9209,7 @@ packages: - supports-color dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.48): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.55): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -9274,12 +9218,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.48 - react-style-singleton: 2.2.1(@types/react@18.2.48) + '@types/react': 18.2.55 + react-style-singleton: 2.2.1(@types/react@18.2.55) tslib: 2.6.2 dev: true - /react-remove-scroll@2.5.5(@types/react@18.2.48): + /react-remove-scroll@2.5.5(@types/react@18.2.55): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -9288,15 +9232,15 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.48 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.48) - react-style-singleton: 2.2.1(@types/react@18.2.48) + '@types/react': 18.2.55 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.55) + react-style-singleton: 2.2.1(@types/react@18.2.55) tslib: 2.6.2 - use-callback-ref: 1.3.1(@types/react@18.2.48) - use-sidecar: 1.1.2(@types/react@18.2.48) + use-callback-ref: 1.3.1(@types/react@18.2.55) + use-sidecar: 1.1.2(@types/react@18.2.55) dev: true - /react-style-singleton@2.2.1(@types/react@18.2.48): + /react-style-singleton@2.2.1(@types/react@18.2.55): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -9305,7 +9249,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.48 + '@types/react': 18.2.55 get-nonce: 1.0.1 invariant: 2.2.4 tslib: 2.6.2 @@ -9396,10 +9340,10 @@ packages: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 globalthis: 1.0.3 which-builtin-type: 1.1.3 dev: true @@ -9417,7 +9361,7 @@ packages: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 set-function-name: 2.0.1 dev: true @@ -9563,26 +9507,34 @@ packages: glob: 7.2.3 dev: true - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rollup@4.10.0: + resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 + '@rollup/rollup-android-arm-eabi': 4.10.0 + '@rollup/rollup-android-arm64': 4.10.0 + '@rollup/rollup-darwin-arm64': 4.10.0 + '@rollup/rollup-darwin-x64': 4.10.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.10.0 + '@rollup/rollup-linux-arm64-gnu': 4.10.0 + '@rollup/rollup-linux-arm64-musl': 4.10.0 + '@rollup/rollup-linux-riscv64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-musl': 4.10.0 + '@rollup/rollup-win32-arm64-msvc': 4.10.0 + '@rollup/rollup-win32-ia32-msvc': 4.10.0 + '@rollup/rollup-win32-x64-msvc': 4.10.0 fsevents: 2.3.3 dev: true @@ -9605,8 +9557,8 @@ packages: resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -9618,8 +9570,8 @@ packages: resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 is-regex: 1.1.4 dev: true @@ -9659,6 +9611,14 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 /sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} @@ -9675,13 +9635,14 @@ packages: /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.2 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.1 dev: true @@ -9690,7 +9651,7 @@ packages: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.2 functions-have-names: 1.2.3 has-property-descriptors: 1.0.1 dev: true @@ -9714,7 +9675,7 @@ packages: dependencies: color: 4.2.3 detect-libc: 2.0.2 - semver: 7.5.4 + semver: 7.6.0 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.2 '@img/sharp-darwin-x64': 0.33.2 @@ -9756,8 +9717,8 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 object-inspect: 1.13.1 dev: true @@ -9865,10 +9826,6 @@ packages: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} dev: true - /spawn-command@0.0.2: - resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} - dev: true - /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: @@ -9964,10 +9921,10 @@ packages: /string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 internal-slot: 1.0.6 regexp.prototype.flags: 1.5.1 @@ -9979,7 +9936,7 @@ packages: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -9987,7 +9944,7 @@ packages: /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -9995,7 +9952,7 @@ packages: /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 define-properties: 1.2.1 es-abstract: 1.22.3 dev: true @@ -10122,13 +10079,6 @@ packages: dependencies: has-flag: 4.0.0 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -10176,7 +10126,7 @@ packages: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.2 @@ -10188,11 +10138,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.33 - postcss-import: 15.1.0(postcss@8.4.33) - postcss-js: 4.0.1(postcss@8.4.33) - postcss-load-config: 4.0.2(postcss@8.4.33) - postcss-nested: 6.0.1(postcss@8.4.33) + postcss: 8.4.35 + postcss-import: 15.1.0(postcss@8.4.35) + postcss-js: 4.0.1(postcss@8.4.35) + postcss-load-config: 4.0.2(postcss@8.4.35) + postcss-nested: 6.0.1(postcss@8.4.35) postcss-selector-parser: 6.0.15 resolve: 1.22.8 sucrase: 3.35.0 @@ -10276,8 +10226,8 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} dev: true @@ -10374,7 +10324,7 @@ packages: resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==} dev: true - /ts-node@10.9.2(@swc/core@1.3.106)(@types/node@20.11.7)(typescript@5.3.3): + /ts-node@10.9.2(@swc/core@1.4.0)(@types/node@20.11.17)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -10389,12 +10339,12 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@swc/core': 1.3.106 + '@swc/core': 1.4.0 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.7 + '@types/node': 20.11.17 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -10428,15 +10378,11 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@2.5.3: - resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} - dev: true - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup@8.0.1(@swc/core@1.3.106)(ts-node@10.9.2)(typescript@5.3.3): - resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + /tsup@8.0.2(@swc/core@1.4.0)(ts-node@10.9.2)(typescript@5.3.3): + resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -10454,10 +10400,10 @@ packages: typescript: optional: true dependencies: - '@swc/core': 1.3.106 + '@swc/core': 1.4.0 bundle-require: 4.0.2(esbuild@0.19.12) cac: 6.7.14 - chokidar: 3.5.3 + chokidar: 3.6.0 debug: 4.3.4 esbuild: 0.19.12 execa: 5.1.1 @@ -10465,7 +10411,7 @@ packages: joycon: 3.1.1 postcss-load-config: 4.0.2(ts-node@10.9.2) resolve-from: 5.0.0 - rollup: 4.9.6 + rollup: 4.10.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 @@ -10475,8 +10421,8 @@ packages: - ts-node dev: true - /tsup@8.0.1(postcss@8.4.33)(typescript@5.3.3): - resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + /tsup@8.0.2(postcss@8.4.35)(typescript@5.3.3): + resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -10496,16 +10442,16 @@ packages: dependencies: bundle-require: 4.0.2(esbuild@0.19.12) cac: 6.7.14 - chokidar: 3.5.3 + chokidar: 3.6.0 debug: 4.3.4 esbuild: 0.19.12 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss: 8.4.33 - postcss-load-config: 4.0.2(postcss@8.4.33) + postcss: 8.4.35 + postcss-load-config: 4.0.2(postcss@8.4.35) resolve-from: 5.0.0 - rollup: 4.9.6 + rollup: 4.10.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 @@ -10515,64 +10461,64 @@ packages: - ts-node dev: true - /turbo-darwin-64@1.11.3: - resolution: {integrity: sha512-IsOOg2bVbIt3o/X8Ew9fbQp5t1hTHN3fGNQYrPQwMR2W1kIAC6RfbVD4A9OeibPGyEPUpwOH79hZ9ydFH5kifw==} + /turbo-darwin-64@1.12.3: + resolution: {integrity: sha512-dDglIaux+A4jOnB9CDH69sujmrnuLJLrKw1t3J+if6ySlFuxSwC++gDq9TVuOZo2+S7lFkGh+x5ytn3wp+jE8Q==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.11.3: - resolution: {integrity: sha512-FsJL7k0SaPbJzI/KCnrf/fi3PgCDCjTliMc/kEFkuWVA6Httc3Q4lxyLIIinz69q6JTx8wzh6yznUMzJRI3+dg==} + /turbo-darwin-arm64@1.12.3: + resolution: {integrity: sha512-5TqqeujEyHMoVUWGzSzUl5ERSg7HDCdbU3gBs5ziWTpFRpeJ/+Y15kYyZJcMQcubRIH3Y1hL/yA5IhlGdgXOMA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.11.3: - resolution: {integrity: sha512-SvW7pvTVRGsqtSkII5w+wriZXvxqkluw5FO/MNAdFw0qmoov+PZ237+37/NgArqE3zVn1GX9P6nUx9VO+xcQAg==} + /turbo-linux-64@1.12.3: + resolution: {integrity: sha512-yUreU+/gq4vlBtcdyfjz7slwz4zM1RG8sSXvyHmAS+QXqSrGkegg4qLl2fRbv/c3EyA/XbfcZuD6tcrXkejr6g==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.11.3: - resolution: {integrity: sha512-YhUfBi1deB3m+3M55X458J6B7RsIS7UtM3P1z13cUIhF+pOt65BgnaSnkHLwETidmhRh8Dl3GelaQGrB3RdCDw==} + /turbo-linux-arm64@1.12.3: + resolution: {integrity: sha512-XRwAsp2eRSqZmaMVNrmHoKqofeJMuD87zmefZLTRAObh38hIwKgyl2QRsJIbteob5RN77yFbv3lAJ36UIY5h7w==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.11.3: - resolution: {integrity: sha512-s+vEnuM2TiZuAUUUpmBHDr6vnNbJgj+5JYfnYmVklYs16kXh+EppafYQOAkcRIMAh7GjV3pLq5/uGqc7seZeHA==} + /turbo-windows-64@1.12.3: + resolution: {integrity: sha512-CPnRfnUCtmFeShOtUdMCthySjmyHaoTyh9JueiYFvtCNeO3WfDMj63dpOQstQWHdJFYmIrIGfhAclcds9ePQYA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.11.3: - resolution: {integrity: sha512-ZR5z5Zpc7cASwfdRAV5yNScCZBsgGSbcwiA/u3farCacbPiXsfoWUkz28iyrx21/TRW0bi6dbsB2v17swa8bjw==} + /turbo-windows-arm64@1.12.3: + resolution: {integrity: sha512-cYA/wlzvp4vlCNHYJ2AjNS3FLXWwUC/5CJompBkTeKFFB6AviE/iLkbIhFikCVSNXZk/3AGanpMUXIkt3bdlwg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.11.3: - resolution: {integrity: sha512-RCJOUFcFMQNIGKSjC9YmA5yVP1qtDiBA0Lv9VIgrXraI5Da1liVvl3VJPsoDNIR9eFMyA/aagx1iyj6UWem5hA==} + /turbo@1.12.3: + resolution: {integrity: sha512-a6q8I0TK9ohACYbkmxzG/JYPuDC4VCvfmXLTlf321qQ4BIAhoyaOj/O2g+zJ6L1vNYnZ82G4LrbMfgLLngbLsg==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.11.3 - turbo-darwin-arm64: 1.11.3 - turbo-linux-64: 1.11.3 - turbo-linux-arm64: 1.11.3 - turbo-windows-64: 1.11.3 - turbo-windows-arm64: 1.11.3 + turbo-darwin-64: 1.12.3 + turbo-darwin-arm64: 1.12.3 + turbo-linux-64: 1.12.3 + turbo-linux-arm64: 1.12.3 + turbo-windows-64: 1.12.3 + turbo-windows-arm64: 1.12.3 dev: true /type-check@0.4.0: @@ -10620,8 +10566,8 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.6 + get-intrinsic: 1.2.4 is-typed-array: 1.1.12 dev: true @@ -10629,7 +10575,7 @@ packages: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -10640,7 +10586,7 @@ packages: engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + call-bind: 1.0.6 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -10649,7 +10595,7 @@ packages: /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 for-each: 0.3.3 is-typed-array: 1.1.12 dev: true @@ -10664,8 +10610,8 @@ packages: resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} dev: true - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + /ufo@1.4.0: + resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} dev: true /uglify-js@3.17.4: @@ -10696,7 +10642,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.6 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -10717,8 +10663,8 @@ packages: '@fastify/busboy': 2.1.0 dev: false - /undici@5.28.2: - resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + /undici@5.28.3: + resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} engines: {node: '>=14.0'} dependencies: '@fastify/busboy': 2.1.0 @@ -10823,7 +10769,7 @@ packages: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} dev: true - /use-callback-ref@1.3.1(@types/react@18.2.48): + /use-callback-ref@1.3.1(@types/react@18.2.55): resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} engines: {node: '>=10'} peerDependencies: @@ -10832,11 +10778,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.48 + '@types/react': 18.2.55 tslib: 2.6.2 dev: true - /use-sidecar@1.1.2(@types/react@18.2.48): + /use-sidecar@1.1.2(@types/react@18.2.55): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -10845,7 +10791,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.48 + '@types/react': 18.2.55 detect-node-es: 1.1.0 tslib: 2.6.2 dev: true @@ -10860,6 +10806,7 @@ packages: requiresBuild: true dependencies: node-gyp-build: 4.8.0 + dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -10902,21 +10849,21 @@ packages: resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} engines: {node: '>=12'} - /vavite@4.0.2(vite@5.0.12): - resolution: {integrity: sha512-a8b76BlRUVZ1BincrCVGfLcJ6TEpQR4sWHNDINiSs8COVbxIabaFyhSPZ4GdMUuxc2uuKXk0u1HI9m/c4tEwjg==} + /vavite@4.0.3(vite@5.1.1): + resolution: {integrity: sha512-nFDju2y09S7sBWPn4qYwZhX4E/SPrbSOyulT9ER7knpXOwjaMvXQNZ20CjqzbO7HGp0k1LSmyF7KvZPIxAfruA==} hasBin: true peerDependencies: vite: ^2.8.1 || 3 || 4 || 5 dependencies: - '@vavite/connect': 4.0.2(vite@5.0.12) - '@vavite/expose-vite-dev-server': 4.0.2(vite@5.0.12) - '@vavite/multibuild': 4.0.2(vite@5.0.12) - '@vavite/multibuild-cli': 4.0.2(vite@5.0.12) - '@vavite/node-loader': 4.0.2(vite@5.0.12) - '@vavite/reloader': 4.0.2(vite@5.0.12) + '@vavite/connect': 4.0.3(vite@5.1.1) + '@vavite/expose-vite-dev-server': 4.0.3(vite@5.1.1) + '@vavite/multibuild': 4.0.3(vite@5.1.1) + '@vavite/multibuild-cli': 4.0.3(vite@5.1.1) + '@vavite/node-loader': 4.0.3(vite@5.1.1) + '@vavite/reloader': 4.0.3(vite@5.1.1) cac: 6.7.14 picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true /version-range@4.14.0: @@ -10939,8 +10886,8 @@ packages: vfile-message: 4.0.2 dev: true - /vike@0.4.160(vite@5.0.12): - resolution: {integrity: sha512-sC+MR1gkY/wgPSbVOlc05PF429CSja3Cc5Ps7+vgccsIH5fhRTm8gS6TwmEK130stK0xauiS2hK9T7BvFTv5rA==} + /vike@0.4.161(vite@5.1.1): + resolution: {integrity: sha512-APiNZS9AuK9JpoJNvxXFxQ6arj3frJzx1kp+gzmXztq8QHa1Sbl5EDUqEGEz3waqO/Q4H0ebRx/W+/UwDk38iQ==} engines: {node: '>=16.0.0'} hasBin: true peerDependencies: @@ -10954,7 +10901,7 @@ packages: '@brillout/json-serializer': 0.5.8 '@brillout/picocolors': 1.0.10 '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.4.3 + '@brillout/vite-plugin-server-entry': 0.4.4 acorn: 8.11.3 cac: 6.7.14 es-module-lexer: 1.4.1 @@ -10962,11 +10909,11 @@ packages: fast-glob: 3.3.2 sirv: 2.0.4 source-map-support: 0.5.21 - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1 dev: true - /vite-node@1.2.1(@types/node@20.11.7): - resolution: {integrity: sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==} + /vite-node@1.2.2(@types/node@20.11.17): + resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -10974,7 +10921,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.7) + vite: 5.1.1(@types/node@20.11.17) transitivePeerDependencies: - '@types/node' - less @@ -10986,8 +10933,34 @@ packages: - terser dev: true - /vite@5.0.12(@types/node@20.11.7): - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + /vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.1.1): + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.56.2 + eslint: 8.56.0 + rollup: 2.79.1 + vite: 5.1.1 + dev: true + + /vite-plugin-graphql-codegen@3.3.6(@graphql-codegen/cli@5.0.2)(graphql@16.8.1)(vite@5.1.1): + resolution: {integrity: sha512-TXMaUpPCfqzSpujjzFjVeeCH9JOSBwFWxOJottZ+gouQtNhnNpgXcj4nZep3om5Wq0UlDwDYLqXWrAa8XaZW1w==} + peerDependencies: + '@graphql-codegen/cli': ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + vite: ^2.7.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + dependencies: + '@graphql-codegen/cli': 5.0.2(@parcel/watcher@2.4.0)(graphql@16.8.1)(typescript@5.3.3) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + graphql: 16.8.1 + vite: 5.1.1 + dev: true + + /vite@5.1.1: + resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11014,16 +10987,51 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.7 esbuild: 0.19.12 - postcss: 8.4.33 - rollup: 4.9.6 + postcss: 8.4.35 + rollup: 4.10.0 optionalDependencies: fsevents: 2.3.3 dev: true - /vitest@1.2.1(@types/node@20.11.7): - resolution: {integrity: sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==} + /vite@5.1.1(@types/node@20.11.17): + resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.17 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@1.2.2(@types/node@20.11.17): + resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11047,27 +11055,27 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.11.7 - '@vitest/expect': 1.2.1 - '@vitest/runner': 1.2.1 - '@vitest/snapshot': 1.2.1 - '@vitest/spy': 1.2.1 - '@vitest/utils': 1.2.1 + '@types/node': 20.11.17 + '@vitest/expect': 1.2.2 + '@vitest/runner': 1.2.2 + '@vitest/snapshot': 1.2.2 + '@vitest/spy': 1.2.2 + '@vitest/utils': 1.2.2 acorn-walk: 8.3.2 cac: 6.7.14 chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.5 + magic-string: 0.30.7 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 1.3.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.0.12(@types/node@20.11.7) - vite-node: 1.2.1(@types/node@20.11.7) + vite: 5.1.1(@types/node@20.11.17) + vite-node: 1.2.2(@types/node@20.11.17) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -11167,7 +11175,7 @@ packages: engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + call-bind: 1.0.6 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 @@ -11250,8 +11258,8 @@ packages: utf-8-validate: 6.0.3 dev: false - /ws@8.14.2(utf-8-validate@6.0.3): - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11261,9 +11269,7 @@ packages: optional: true utf-8-validate: optional: true - dependencies: - utf-8-validate: 6.0.3 - dev: false + dev: true /ws@8.16.0(utf-8-validate@6.0.3): resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} @@ -11278,6 +11284,7 @@ packages: optional: true dependencies: utf-8-validate: 6.0.3 + dev: false /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} @@ -11374,8 +11381,8 @@ packages: type-fest: 2.19.0 dev: true - /zod-validation-error@2.1.0(zod@3.22.4): - resolution: {integrity: sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==} + /zod-validation-error@3.0.0(zod@3.22.4): + resolution: {integrity: sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 diff --git a/turbo.json b/turbo.json index 8a2ffbb..de12e9f 100644 --- a/turbo.json +++ b/turbo.json @@ -1,26 +1,20 @@ { - "baseBranch": "origin/main", - "pipeline": { - "build": { - "dependsOn": [ - "^build" - ], - "outputs": [ - "dist/**", - ".next/{server,cache,src,static}" - ] - }, - "lint": { - "outputs": [] - }, - "test": { - "outputs": [] - }, - "clean": { - "outputs": [] - }, - "watch": { - "cache": false - } + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**", ".next/{server,cache,src,static}"] + }, + "lint": { + "outputs": [] + }, + "test": { + "outputs": [] + }, + "clean": { + "outputs": [] + }, + "watch": { + "cache": false } -} \ No newline at end of file + } +}