diff --git a/.gitignore b/.gitignore index 658131b69..5a0a7a7c4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ dist-ssr dist.zip dist.tar dist.war +.nitro +.output *-dist.zip *-dist.tar *-dist.war diff --git a/.prettierignore b/.prettierignore index 72b58afa1..d0b0ca133 100644 --- a/.prettierignore +++ b/.prettierignore @@ -6,6 +6,8 @@ node_modules .nvmrc coverage CODEOWNERS +.nitro +.output **/*.svg diff --git a/.vscode/settings.json b/.vscode/settings.json index 5d2fed45b..4776e894b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -191,5 +191,6 @@ "tailwind.config.mjs": "postcss.*" }, "commentTranslate.hover.enabled": true, - "i18n-ally.keystyle": "nested" + "i18n-ally.keystyle": "nested", + "commentTranslate.multiLineMerge": true } diff --git a/apps/backend-mock/.env b/apps/backend-mock/.env new file mode 100644 index 000000000..9f0c6237f --- /dev/null +++ b/apps/backend-mock/.env @@ -0,0 +1 @@ +PORT=5320 diff --git a/apps/backend-mock/README.md b/apps/backend-mock/README.md index e5892b660..d303352e7 100644 --- a/apps/backend-mock/README.md +++ b/apps/backend-mock/README.md @@ -10,9 +10,6 @@ Vben Admin 数据 mock 服务,没有对接任何的数据库,所有数据都 # development $ pnpm run start -# watch mode -$ pnpm run start:dev - # production mode -$ pnpm run start:prod +$ pnpm run build ``` diff --git a/apps/backend-mock/api/auth/codes.ts b/apps/backend-mock/api/auth/codes.ts new file mode 100644 index 000000000..7e5b597f4 --- /dev/null +++ b/apps/backend-mock/api/auth/codes.ts @@ -0,0 +1,15 @@ +export default eventHandler((event) => { + const token = getHeader(event, 'Authorization'); + + if (!token) { + setResponseStatus(event, 401); + return useResponseError('UnauthorizedException', 'Unauthorized Exception'); + } + + const username = Buffer.from(token, 'base64').toString('utf8'); + + const codes = + MOCK_CODES.find((item) => item.username === username)?.codes ?? []; + + return useResponseSuccess(codes); +}); diff --git a/apps/backend-mock/api/auth/login.post.ts b/apps/backend-mock/api/auth/login.post.ts new file mode 100644 index 000000000..2344742ca --- /dev/null +++ b/apps/backend-mock/api/auth/login.post.ts @@ -0,0 +1,20 @@ +export default defineEventHandler(async (event) => { + const { password, username } = await readBody(event); + + const findUser = MOCK_USERS.find( + (item) => item.username === username && item.password === password, + ); + + if (!findUser) { + setResponseStatus(event, 403); + return useResponseError('UnauthorizedException', '用户名或密码错误'); + } + + const accessToken = Buffer.from(username).toString('base64'); + + return useResponseSuccess({ + accessToken, + // TODO: refresh token + refreshToken: accessToken, + }); +}); diff --git a/apps/backend-mock/api/menu/all.ts b/apps/backend-mock/api/menu/all.ts new file mode 100644 index 000000000..424d657a5 --- /dev/null +++ b/apps/backend-mock/api/menu/all.ts @@ -0,0 +1,14 @@ +export default eventHandler((event) => { + const token = getHeader(event, 'Authorization'); + + if (!token) { + setResponseStatus(event, 401); + return useResponseError('UnauthorizedException', 'Unauthorized Exception'); + } + + const username = Buffer.from(token, 'base64').toString('utf8'); + + const menus = + MOCK_MENUS.find((item) => item.username === username)?.menus ?? []; + return useResponseSuccess(menus); +}); diff --git a/apps/backend-mock/api/status.ts b/apps/backend-mock/api/status.ts new file mode 100644 index 000000000..41773e1d5 --- /dev/null +++ b/apps/backend-mock/api/status.ts @@ -0,0 +1,5 @@ +export default eventHandler((event) => { + const { status } = getQuery(event); + setResponseStatus(event, Number(status)); + return useResponseError(`${status}`); +}); diff --git a/apps/backend-mock/api/test.get.ts b/apps/backend-mock/api/test.get.ts new file mode 100644 index 000000000..ca4a500be --- /dev/null +++ b/apps/backend-mock/api/test.get.ts @@ -0,0 +1 @@ +export default defineEventHandler(() => 'Test get handler'); diff --git a/apps/backend-mock/api/test.post.ts b/apps/backend-mock/api/test.post.ts new file mode 100644 index 000000000..698cf211e --- /dev/null +++ b/apps/backend-mock/api/test.post.ts @@ -0,0 +1 @@ +export default defineEventHandler(() => 'Test post handler'); diff --git a/apps/backend-mock/api/user/info.ts b/apps/backend-mock/api/user/info.ts new file mode 100644 index 000000000..81a141b12 --- /dev/null +++ b/apps/backend-mock/api/user/info.ts @@ -0,0 +1,14 @@ +export default eventHandler((event) => { + const token = getHeader(event, 'Authorization'); + if (!token) { + setResponseStatus(event, 401); + return useResponseError('UnauthorizedException', 'Unauthorized Exception'); + } + + const username = Buffer.from(token, 'base64').toString('utf8'); + + const user = MOCK_USERS.find((item) => item.username === username); + + const { password: _pwd, ...userInfo } = user; + return useResponseSuccess(userInfo); +}); diff --git a/apps/backend-mock/ecosystem.config.cjs b/apps/backend-mock/ecosystem.config.cjs deleted file mode 100644 index 1bebc0ff2..000000000 --- a/apps/backend-mock/ecosystem.config.cjs +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - apps: [ - { - autorestart: true, - cwd: './', - env: { - NODE_ENV: 'production', - }, - env_development: { - NODE_ENV: 'development', - }, - env_production: { - NODE_ENV: 'production', - }, - ignore_watch: ['node_modules', '.logs', 'dist'], - instances: 1, - max_memory_restart: '1G', - name: '@vben/backend-mock', - script: 'node dist/main.js', - watch: false, - }, - ], -}; diff --git a/apps/backend-mock/error.ts b/apps/backend-mock/error.ts new file mode 100644 index 000000000..5d3d247ad --- /dev/null +++ b/apps/backend-mock/error.ts @@ -0,0 +1,7 @@ +import type { NitroErrorHandler } from 'nitropack'; + +const errorHandler: NitroErrorHandler = function (error, event) { + event.res.end(`[error handler] ${error.stack}`); +}; + +export default errorHandler; diff --git a/apps/backend-mock/http/auth.http b/apps/backend-mock/http/auth.http deleted file mode 100644 index 608f522ca..000000000 --- a/apps/backend-mock/http/auth.http +++ /dev/null @@ -1,20 +0,0 @@ -@port = 5320 -@type = application/json -@token = Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MCwicm9sZXMiOlsiYWRtaW4iXSwidXNlcm5hbWUiOiJ2YmVuIiwiaWF0IjoxNzE5ODkwMTEwLCJleHAiOjE3MTk5NzY1MTB9.eyAFsQ2Jk_mAQGvrEL1jF9O6YmLZ_PSYj5aokL6fCuU -POST http://localhost:{{port}}/api/auth/login HTTP/1.1 -content-type: {{ type }} - -{ - "username": "vben", - "password": "123456" -} - - -### -GET http://localhost:{{port}}/api/auth/getUserInfo HTTP/1.1 -content-type: {{ type }} -Authorization: {{ token }} - -{ - "username": "vben" -} diff --git a/apps/backend-mock/http/health.http b/apps/backend-mock/http/health.http deleted file mode 100644 index ecaad12c0..000000000 --- a/apps/backend-mock/http/health.http +++ /dev/null @@ -1,3 +0,0 @@ -@port = 5320 -GET http://localhost:{{port}}/api HTTP/1.1 -content-type: application/json diff --git a/apps/backend-mock/http/menu.http b/apps/backend-mock/http/menu.http deleted file mode 100644 index f2d7df4de..000000000 --- a/apps/backend-mock/http/menu.http +++ /dev/null @@ -1,6 +0,0 @@ -@port = 5320 -@type = application/json -@token = Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MCwicm9sZXMiOlsiYWRtaW4iXSwidXNlcm5hbWUiOiJ2YmVuIiwiaWF0IjoxNzE5ODkwMTEwLCJleHAiOjE3MTk5NzY1MTB9.eyAFsQ2Jk_mAQGvrEL1jF9O6YmLZ_PSYj5aokL6fCuU -GET http://localhost:{{port}}/api/menu/getAll HTTP/1.1 -content-type: {{ type }} -Authorization: {{ token }} diff --git a/apps/backend-mock/nest-cli.json b/apps/backend-mock/nest-cli.json deleted file mode 100644 index 456b62002..000000000 --- a/apps/backend-mock/nest-cli.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/nest-cli", - "collection": "@nestjs/schematics", - "sourceRoot": "src", - "compilerOptions": { - "assets": ["**/*.yml", "**/*.json"], - "watchAssets": true, - "deleteOutDir": true - } -} diff --git a/apps/backend-mock/nitro.config.ts b/apps/backend-mock/nitro.config.ts new file mode 100644 index 000000000..76b12dc18 --- /dev/null +++ b/apps/backend-mock/nitro.config.ts @@ -0,0 +1,6 @@ +import errorHandler from './error'; + +export default defineNitroConfig({ + devErrorHandler: errorHandler, + errorHandler: '~/error', +}); diff --git a/apps/backend-mock/package.json b/apps/backend-mock/package.json index c03917617..6744e0161 100644 --- a/apps/backend-mock/package.json +++ b/apps/backend-mock/package.json @@ -6,41 +6,10 @@ "license": "MIT", "author": "", "scripts": { - "build": "nest build", - "dev": "pnpm run start:dev", - "start": "cross-env NODE_ENV=development node dist/main", - "start:dev": "cross-env NODE_ENV=development DEBUG=true nest start --watch", - "start:prod": "nest build && cross-env NODE_ENV=production node dist/main" + "start": "nitro dev", + "build": "nitro build" }, "dependencies": { - "@nestjs/common": "^10.3.10", - "@nestjs/config": "^3.2.3", - "@nestjs/core": "^10.3.10", - "@nestjs/jwt": "^10.2.0", - "@nestjs/passport": "^10.0.3", - "@nestjs/platform-express": "^10.3.10", - "@types/js-yaml": "^4.0.9", - "bcryptjs": "^2.4.3", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.1", - "cross-env": "^7.0.3", - "joi": "^17.13.3", - "js-yaml": "^4.1.0", - "mockjs": "^1.1.0", - "passport": "^0.7.0", - "passport-jwt": "^4.0.1", - "passport-local": "^1.0.0", - "reflect-metadata": "^0.2.2", - "rxjs": "^7.8.1" - }, - "devDependencies": { - "@nestjs/cli": "^10.4.2", - "@nestjs/schematics": "^10.1.2", - "@types/express": "^4.17.21", - "@types/mockjs": "^1.0.10", - "@types/node": "^20.14.11", - "nodemon": "^3.1.4", - "ts-node": "^10.9.2", - "typescript": "^5.5.3" + "nitropack": "latest" } } diff --git a/apps/backend-mock/routes/[...].ts b/apps/backend-mock/routes/[...].ts new file mode 100644 index 000000000..70c5f7c74 --- /dev/null +++ b/apps/backend-mock/routes/[...].ts @@ -0,0 +1,12 @@ +export default defineEventHandler(() => { + return ` +

Hello Vben Admin

+

Mock service is starting

+ +`; +}); diff --git a/apps/backend-mock/src/app.module.ts b/apps/backend-mock/src/app.module.ts deleted file mode 100644 index 44bc129dd..000000000 --- a/apps/backend-mock/src/app.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import configuration from '@/config/index'; -import { Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; -import Joi from 'joi'; - -import { AuthModule } from './modules/auth/auth.module'; -import { HealthModule } from './modules/health/health.module'; -import { MenuModule } from './modules/menu/menu.module'; -import { MockModule } from './modules/mock/mock.module'; -import { UsersModule } from './modules/users/users.module'; - -@Module({ - imports: [ - ConfigModule.forRoot({ - cache: true, - isGlobal: true, - load: [configuration], - validationOptions: { - abortEarly: true, - allowUnknown: true, - }, - validationSchema: Joi.object({ - NODE_ENV: Joi.string().valid('development', 'production', 'test'), - port: Joi.number(), - }), - }), - HealthModule, - AuthModule, - UsersModule, - MenuModule, - MockModule, - ], -}) -export class AppModule {} diff --git a/apps/backend-mock/src/config/dev.yml b/apps/backend-mock/src/config/dev.yml deleted file mode 100644 index f50410d80..000000000 --- a/apps/backend-mock/src/config/dev.yml +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV: development -port: 5320 -apiPrefix: /api -jwt: - secret: plonmGN4aSuMVnucrHuhnUoo49Wy - expiresIn: 1d - refreshSecret: 1lonmGN4aSuMVnucrHuhnUoo49Wy - refreshexpiresIn: 7d diff --git a/apps/backend-mock/src/config/index.ts b/apps/backend-mock/src/config/index.ts deleted file mode 100644 index 1b1df1873..000000000 --- a/apps/backend-mock/src/config/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { readFileSync } from 'node:fs'; -import { join } from 'node:path'; -import process from 'node:process'; - -import * as yaml from 'js-yaml'; - -const configFileNameObj = { - development: 'dev', - production: 'prod', -}; - -const env = process.env.NODE_ENV; - -const configFactory = () => { - return yaml.load( - readFileSync( - join(process.cwd(), 'src', 'config', `${configFileNameObj[env]}.yml`), - 'utf8', - ), - ) as Record; -}; - -export default configFactory; diff --git a/apps/backend-mock/src/config/prod.yml b/apps/backend-mock/src/config/prod.yml deleted file mode 100644 index c66b9ed9d..000000000 --- a/apps/backend-mock/src/config/prod.yml +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV: production -port: 5320 -apiPrefix: /api -jwt: - secret: plonmGN4SuMVnucrHunUoo49Wy12 - expiresIn: 1d - refreshSecret: 2lonmGN4aSuMVnucrHuhnUoo49Wy - refreshexpiresIn: 7d diff --git a/apps/backend-mock/src/core/decorator/index.ts b/apps/backend-mock/src/core/decorator/index.ts deleted file mode 100644 index b7e8b7187..000000000 --- a/apps/backend-mock/src/core/decorator/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './public'; diff --git a/apps/backend-mock/src/core/decorator/public.ts b/apps/backend-mock/src/core/decorator/public.ts deleted file mode 100644 index b3845e122..000000000 --- a/apps/backend-mock/src/core/decorator/public.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { SetMetadata } from '@nestjs/common'; - -export const IS_PUBLIC_KEY = 'isPublic'; -export const Public = () => SetMetadata(IS_PUBLIC_KEY, true); diff --git a/apps/backend-mock/src/core/filter/http-exception.filter.ts b/apps/backend-mock/src/core/filter/http-exception.filter.ts deleted file mode 100644 index 5d106da99..000000000 --- a/apps/backend-mock/src/core/filter/http-exception.filter.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { - ArgumentsHost, - Catch, - ExceptionFilter, - HttpException, - HttpStatus, - Logger, -} from '@nestjs/common'; -import { Request, Response } from 'express'; - -@Catch(HttpException) -export class HttpExceptionFilter implements ExceptionFilter { - catch(exception: HttpException, host: ArgumentsHost) { - const ctx = host.switchToHttp(); - const response = ctx.getResponse(); - const request = ctx.getRequest(); - const status = - exception instanceof HttpException - ? exception.getStatus() - : HttpStatus.INTERNAL_SERVER_ERROR; - - const logFormat = `Request original url: ${request.originalUrl} Method: ${request.method} IP: ${request.ip} Status code: ${status} Response: ${exception.toString()}`; - Logger.error(logFormat); - - const resultMessage = exception.message as any; - const message = - resultMessage || `${status >= 500 ? 'Service Error' : 'Client Error'}`; - - const errorResponse = { - code: 1, - error: resultMessage, - message, - status, - url: request.originalUrl, - }; - response.status(status); - response.header('Content-Type', 'application/json; charset=utf-8'); - response.send(errorResponse); - } -} diff --git a/apps/backend-mock/src/core/filter/index.ts b/apps/backend-mock/src/core/filter/index.ts deleted file mode 100644 index 18204b07a..000000000 --- a/apps/backend-mock/src/core/filter/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './http-exception.filter'; diff --git a/apps/backend-mock/src/core/guard/index.ts b/apps/backend-mock/src/core/guard/index.ts deleted file mode 100644 index 759d2eb02..000000000 --- a/apps/backend-mock/src/core/guard/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './jwt-auth.guard'; -export * from './local-auth.guard'; diff --git a/apps/backend-mock/src/core/guard/jwt-auth.guard.ts b/apps/backend-mock/src/core/guard/jwt-auth.guard.ts deleted file mode 100644 index 4a4facf13..000000000 --- a/apps/backend-mock/src/core/guard/jwt-auth.guard.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ExecutionContext, Injectable } from '@nestjs/common'; -import { Reflector } from '@nestjs/core'; -import { AuthGuard } from '@nestjs/passport'; - -import { IS_PUBLIC_KEY } from '../decorator/index'; - -@Injectable() -export class JwtAuthGuard extends AuthGuard('jwt') { - constructor(private reflector: Reflector) { - super(); - } - - canActivate(context: ExecutionContext) { - const isPublic = this.reflector.getAllAndOverride(IS_PUBLIC_KEY, [ - context.getHandler(), - context.getClass(), - ]); - if (isPublic) { - return true; - } - return super.canActivate(context); - } -} diff --git a/apps/backend-mock/src/core/guard/local-auth.guard.ts b/apps/backend-mock/src/core/guard/local-auth.guard.ts deleted file mode 100644 index ccf962b67..000000000 --- a/apps/backend-mock/src/core/guard/local-auth.guard.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { AuthGuard } from '@nestjs/passport'; - -@Injectable() -export class LocalAuthGuard extends AuthGuard('local') {} diff --git a/apps/backend-mock/src/core/interceptor/index.ts b/apps/backend-mock/src/core/interceptor/index.ts deleted file mode 100644 index 0546468e2..000000000 --- a/apps/backend-mock/src/core/interceptor/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './transform.interceptor'; diff --git a/apps/backend-mock/src/core/interceptor/transform.interceptor.ts b/apps/backend-mock/src/core/interceptor/transform.interceptor.ts deleted file mode 100644 index 9aba1eec6..000000000 --- a/apps/backend-mock/src/core/interceptor/transform.interceptor.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { - CallHandler, - ExecutionContext, - Injectable, - Logger, - NestInterceptor, -} from '@nestjs/common'; -import { Observable } from 'rxjs'; -import { map } from 'rxjs/operators'; - -@Injectable() -export class TransformInterceptor implements NestInterceptor { - public intercept( - context: ExecutionContext, - next: CallHandler, - ): Observable { - const req = context.getArgByIndex(1).req; - return next.handle().pipe( - map((data) => { - const logFormat = ` - Request original url: ${req.originalUrl} - Method: ${req.method} - IP: ${req.ip} - User: ${JSON.stringify(req.user)} - Response data: ${JSON.stringify(data)} - `; - Logger.debug(logFormat); - return { - code: 0, - data, - error: null, - message: 'ok', - }; - }), - ); - } -} diff --git a/apps/backend-mock/src/core/pipe/index.ts b/apps/backend-mock/src/core/pipe/index.ts deleted file mode 100644 index 609a4dcd6..000000000 --- a/apps/backend-mock/src/core/pipe/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './params.pipe'; diff --git a/apps/backend-mock/src/core/pipe/params.pipe.ts b/apps/backend-mock/src/core/pipe/params.pipe.ts deleted file mode 100644 index 15c20a02e..000000000 --- a/apps/backend-mock/src/core/pipe/params.pipe.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { - BadRequestException, - HttpStatus, - ValidationPipe, - type ValidationPipeOptions, -} from '@nestjs/common'; - -class ParamsValidationPipe extends ValidationPipe { - constructor(options: ValidationPipeOptions = {}) { - super({ - errorHttpStatusCode: HttpStatus.BAD_REQUEST, - exceptionFactory: (errors) => { - const message = Object.values(errors[0].constraints)[0]; - return new BadRequestException({ - message, - status: HttpStatus.BAD_REQUEST, - }); - }, - forbidNonWhitelisted: true, - transform: true, - whitelist: true, - ...options, - }); - } -} - -export { ParamsValidationPipe }; diff --git a/apps/backend-mock/src/main.ts b/apps/backend-mock/src/main.ts deleted file mode 100644 index cfe5e48a7..000000000 --- a/apps/backend-mock/src/main.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { AppConfig } from '@/types'; - -import process from 'node:process'; - -import { HttpExceptionFilter } from '@/core/filter'; -import { TransformInterceptor } from '@/core/interceptor'; -import { ParamsValidationPipe } from '@/core/pipe'; -import { type LogLevel } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { NestFactory, Reflector } from '@nestjs/core'; - -import { AppModule } from './app.module'; -import { JwtAuthGuard } from './core/guard'; - -async function bootstrap() { - const debug: LogLevel[] = process.env.DEBUG ? ['debug'] : []; - const loggerLevel: LogLevel[] = ['log', 'error', 'warn', ...debug]; - - const app = await NestFactory.create(AppModule, { - cors: true, - logger: loggerLevel, - }); - - // 获取 ConfigService 实例 - const configService = app.get(ConfigService); - - // 使用 ConfigService 获取配置值 - const port = configService.get('port') || 3000; - const apiPrefix = configService.get('apiPrefix'); - - // 全局注册拦截器 - app.useGlobalInterceptors(new TransformInterceptor()); - - const reflector = app.get(Reflector); - app.useGlobalGuards(new JwtAuthGuard(reflector)); - - // 全局注册错误的过滤器 - app.useGlobalFilters(new HttpExceptionFilter()); - - // 设置全局接口数据校验 - app.useGlobalPipes(new ParamsValidationPipe()); - - app.setGlobalPrefix(apiPrefix); - - await app.listen(port); - - console.log( - `Application is running on: http://localhost:${port}${apiPrefix}`, - ); -} -bootstrap(); diff --git a/apps/backend-mock/src/models/dto/auth.dto.ts b/apps/backend-mock/src/models/dto/auth.dto.ts deleted file mode 100644 index ff907cb06..000000000 --- a/apps/backend-mock/src/models/dto/auth.dto.ts +++ /dev/null @@ -1,5 +0,0 @@ -class RefreshTokenDto { - refreshToken: string; -} - -export { RefreshTokenDto }; diff --git a/apps/backend-mock/src/models/dto/user.dto.ts b/apps/backend-mock/src/models/dto/user.dto.ts deleted file mode 100644 index e5f5c60ac..000000000 --- a/apps/backend-mock/src/models/dto/user.dto.ts +++ /dev/null @@ -1,9 +0,0 @@ -class CreateUserDto { - id: number; - password: string; - realName: string; - roles: string[]; - username: string; -} - -export { CreateUserDto }; diff --git a/apps/backend-mock/src/models/entity/user.entity.ts b/apps/backend-mock/src/models/entity/user.entity.ts deleted file mode 100644 index b4bd8fd52..000000000 --- a/apps/backend-mock/src/models/entity/user.entity.ts +++ /dev/null @@ -1,21 +0,0 @@ -class UserEntity { - id: number; - /** - * 密码 - */ - password: string; - /** - * 真实姓名 - */ - realName: string; - /** - * 角色 - */ - roles: string[]; - /** - * 用户名 - */ - username: string; -} - -export { UserEntity }; diff --git a/apps/backend-mock/src/modules/auth/auth.controller.ts b/apps/backend-mock/src/modules/auth/auth.controller.ts deleted file mode 100644 index b61d3a20a..000000000 --- a/apps/backend-mock/src/modules/auth/auth.controller.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { RefreshTokenDto } from '@/models/dto/auth.dto'; - -import { Public } from '@/core/decorator'; -import { LocalAuthGuard } from '@/core/guard'; -import { - Body, - Controller, - Get, - HttpCode, - HttpStatus, - Post, - Request, - UseGuards, -} from '@nestjs/common'; - -import { AuthService } from './auth.service'; - -@Controller('auth') -export class AuthController { - constructor(private authService: AuthService) {} - - /** - * 获取用户权限码 - * @param req - */ - @Get('getAccessCodes') - @HttpCode(HttpStatus.OK) - async getAccessCodes(@Request() req: Request) { - return await this.authService.getAccessCodes(req.user.username); - } - - /** - * 获取用户信息 - * @param req - */ - @Get('getUserInfo') - @HttpCode(HttpStatus.OK) - async getProfile(@Request() req: Request) { - return await this.authService.getUserInfo(req.user.username); - } - - /** - * 用户登录 - * @param req - */ - @Public() - @UseGuards(LocalAuthGuard) - @Post('login') - @HttpCode(HttpStatus.OK) - async login(@Request() req: Request) { - return await this.authService.login(req.user); - } - - @Post('refreshToken') - @HttpCode(HttpStatus.OK) - async refreshToken(@Body() refreshTokenDto: RefreshTokenDto) { - return this.authService.refresh(refreshTokenDto.refreshToken); - } -} diff --git a/apps/backend-mock/src/modules/auth/auth.module.ts b/apps/backend-mock/src/modules/auth/auth.module.ts deleted file mode 100644 index ba8e876f4..000000000 --- a/apps/backend-mock/src/modules/auth/auth.module.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { JwtConfig } from '@/types'; - -import { Module } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { JwtModule } from '@nestjs/jwt'; - -import { UsersModule } from '../users/users.module'; -import { AuthController } from './auth.controller'; -import { AuthService } from './auth.service'; -import { JwtStrategy } from './jwt.strategy'; -import { LocalStrategy } from './local.strategy'; -import { JwtRefreshStrategy } from './refresh-token.strategy'; - -@Module({ - controllers: [AuthController], - exports: [AuthService], - imports: [ - UsersModule, - JwtModule.registerAsync({ - global: true, - inject: [ConfigService], - useFactory: async (configService: ConfigService) => { - const { expiresIn, secret } = configService.get('jwt'); - return { - secret, - signOptions: { expiresIn }, - }; - }, - }), - ], - providers: [AuthService, JwtStrategy, JwtRefreshStrategy, LocalStrategy], -}) -export class AuthModule {} diff --git a/apps/backend-mock/src/modules/auth/auth.service.ts b/apps/backend-mock/src/modules/auth/auth.service.ts deleted file mode 100644 index dc89f6091..000000000 --- a/apps/backend-mock/src/modules/auth/auth.service.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { UserEntity } from '@/models/entity/user.entity'; -import type { JwtConfig } from '@/types'; - -import { UsersService } from '@/modules/users/users.service'; -import { Injectable, UnauthorizedException } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { JwtService } from '@nestjs/jwt'; -import bcrypt from 'bcryptjs'; - -@Injectable() -export class AuthService { - constructor( - private usersService: UsersService, - private jwtService: JwtService, - private configService: ConfigService, - ) {} - - /** - * get user info - * @param username - */ - async getAccessCodes(username: string): Promise { - const user = await this.usersService.findOne(username); - - const mockCodes = [ - // super - { - codes: ['AC_100100', 'AC_100110', 'AC_100120', 'AC_100010'], - userId: 0, - }, - { - // admin - codes: ['AC_100010', 'AC_100020', 'AC_100030'], - userId: 1, - }, - { - // user - codes: ['AC_1000001', 'AC_1000002'], - userId: 2, - }, - ]; - - return mockCodes.find((item) => item.userId === user.id)?.codes ?? []; - } - - async getUserInfo(username: string): Promise> { - const user = await this.usersService.findOne(username); - const { password: _pass, ...userInfo } = user; - return userInfo; - } - - /** - * user login - */ - async login(userEntity: UserEntity): Promise { - const { id, roles, username } = userEntity; - - const payload = { id, roles, username }; - const { refreshSecret, refreshexpiresIn } = - this.configService.get('jwt'); - return { - accessToken: await this.jwtService.signAsync(payload), - refreshToken: this.jwtService.sign(payload, { - expiresIn: refreshexpiresIn, - secret: refreshSecret, - }), - }; - } - - async refresh(refreshToken: string) { - try { - const payload = this.jwtService.verify(refreshToken, { - secret: this.configService.get('jwt').refreshSecret, - }); - const user = await this.usersService.findOne(payload.username); - if (!user) { - throw new UnauthorizedException(); - } - return this.login(user); - } catch { - throw new UnauthorizedException(); - } - } - - async validateUser(username: string, password: string): Promise { - const user = await this.usersService.findOne(username); - if (user && (await bcrypt.compare(password, user.password))) { - // 使用 bcrypt.compare 验证密码 - const { password: _pass, ...result } = user; - return result; - } - return null; - } -} diff --git a/apps/backend-mock/src/modules/auth/jwt.strategy.ts b/apps/backend-mock/src/modules/auth/jwt.strategy.ts deleted file mode 100644 index 97199cb9a..000000000 --- a/apps/backend-mock/src/modules/auth/jwt.strategy.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { JwtConfig, JwtPayload } from '@/types'; - -import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { PassportStrategy } from '@nestjs/passport'; -import { ExtractJwt, Strategy } from 'passport-jwt'; - -@Injectable() -export class JwtStrategy extends PassportStrategy(Strategy) { - constructor(configService: ConfigService) { - super({ - ignoreExpiration: false, - jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), - secretOrKey: configService.get('jwt').secret, - }); - } - - async validate(payload: JwtPayload) { - console.log('jwt strategy validate payload', payload); - return { - id: payload.id, - roles: payload.roles, - username: payload.username, - }; - } -} diff --git a/apps/backend-mock/src/modules/auth/local.strategy.ts b/apps/backend-mock/src/modules/auth/local.strategy.ts deleted file mode 100644 index 40b92e1b2..000000000 --- a/apps/backend-mock/src/modules/auth/local.strategy.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Injectable, UnauthorizedException } from '@nestjs/common'; -import { PassportStrategy } from '@nestjs/passport'; -import { Strategy } from 'passport-local'; - -import { AuthService } from './auth.service'; - -@Injectable() -export class LocalStrategy extends PassportStrategy(Strategy) { - constructor(private authService: AuthService) { - super(); - } - - async validate(username: string, password: string): Promise { - const user = await this.authService.validateUser(username, password); - if (!user) { - throw new UnauthorizedException(); - } - return user; - } -} diff --git a/apps/backend-mock/src/modules/auth/refresh-token.strategy.ts b/apps/backend-mock/src/modules/auth/refresh-token.strategy.ts deleted file mode 100644 index f4eacd66c..000000000 --- a/apps/backend-mock/src/modules/auth/refresh-token.strategy.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { JwtConfig, JwtPayload } from '@/types'; - -import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { PassportStrategy } from '@nestjs/passport'; -import { ExtractJwt, Strategy } from 'passport-jwt'; - -@Injectable() -export class JwtRefreshStrategy extends PassportStrategy( - Strategy, - 'jwt-refresh', -) { - constructor(configService: ConfigService) { - super({ - ignoreExpiration: false, - jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), - secretOrKey: configService.get('jwt').refreshSecret, - }); - } - - async validate(payload: JwtPayload) { - console.log('jwt refresh strategy validate payload', payload); - return { - id: payload.id, - roles: payload.roles, - username: payload.username, - }; - } -} diff --git a/apps/backend-mock/src/modules/health/health.controller.ts b/apps/backend-mock/src/modules/health/health.controller.ts deleted file mode 100644 index 169f46582..000000000 --- a/apps/backend-mock/src/modules/health/health.controller.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Public } from '@/core/decorator'; -import { Controller, Get } from '@nestjs/common'; - -@Controller() -export class HealthController { - @Public() - @Get() - getHeart(): string { - return 'ok'; - } -} diff --git a/apps/backend-mock/src/modules/health/health.module.ts b/apps/backend-mock/src/modules/health/health.module.ts deleted file mode 100644 index 90d1fe0ac..000000000 --- a/apps/backend-mock/src/modules/health/health.module.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { HealthController } from './health.controller'; - -@Module({ - controllers: [HealthController], -}) -export class HealthModule {} diff --git a/apps/backend-mock/src/modules/menu/menu.controller.ts b/apps/backend-mock/src/modules/menu/menu.controller.ts deleted file mode 100644 index d25523321..000000000 --- a/apps/backend-mock/src/modules/menu/menu.controller.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { sleep } from '@/utils'; -import { Controller, Get, HttpCode, HttpStatus, Request } from '@nestjs/common'; - -@Controller('menu') -export class MenuController { - /** - * 获取用户所有菜单 - */ - @Get('getAll') - @HttpCode(HttpStatus.OK) - async getAll(@Request() req: Request) { - // 模拟请求延迟 - await sleep(500); - // 请求用户的id - const userId = req.user.id; - - // TODO: 改为表方式获取 - const dashboardMenus = [ - { - component: 'BasicLayout', - meta: { - order: -1, - title: 'page.dashboard.title', - }, - name: 'Dashboard', - path: '/', - redirect: '/analytics', - children: [ - { - name: 'Analytics', - path: '/analytics', - component: '/dashboard/analytics/index', - meta: { - affixTab: true, - title: 'page.dashboard.analytics', - }, - }, - { - name: 'Workspace', - path: '/workspace', - component: '/dashboard/workspace/index', - meta: { - title: 'page.dashboard.workspace', - }, - }, - ], - }, - ]; - - const createDemosMenus = (role: 'admin' | 'super' | 'user') => { - const roleWithMenus = { - admin: { - component: '/demos/access/admin-visible', - meta: { - icon: 'mdi:button-cursor', - title: 'page.demos.access.adminVisible', - }, - name: 'AccessAdminVisible', - path: 'admin-visible', - }, - super: { - component: '/demos/access/super-visible', - meta: { - icon: 'mdi:button-cursor', - title: 'page.demos.access.superVisible', - }, - name: 'AccessSuperVisible', - path: 'super-visible', - }, - user: { - component: '/demos/access/user-visible', - meta: { - icon: 'mdi:button-cursor', - title: 'page.demos.access.userVisible', - }, - name: 'AccessUserVisible', - path: 'user-visible', - }, - }; - - return [ - { - component: 'BasicLayout', - meta: { - icon: 'ic:baseline-view-in-ar', - keepAlive: true, - order: 1000, - title: 'page.demos.title', - }, - name: 'Demos', - path: '/demos', - redirect: '/access', - children: [ - { - name: 'Access', - path: '/access', - meta: { - icon: 'mdi:cloud-key-outline', - title: 'page.demos.access.backendPermissions', - }, - redirect: '/access/page-control', - children: [ - { - name: 'AccessPageControl', - path: 'page-control', - component: '/demos/access/index', - meta: { - icon: 'mdi:page-previous-outline', - title: 'page.demos.access.pageAccess', - }, - }, - { - name: 'AccessButtonControl', - path: 'button-control', - component: '/demos/access/button-control', - meta: { - icon: 'mdi:button-cursor', - title: 'page.demos.access.buttonControl', - }, - }, - { - name: 'AccessMenuVisible403', - path: 'menu-visible-403', - component: '/demos/access/menu-visible-403', - meta: { - authority: ['no-body'], - icon: 'mdi:button-cursor', - menuVisibleWithForbidden: true, - title: 'page.demos.access.menuVisible403', - }, - }, - roleWithMenus[role], - ], - }, - ], - }, - ]; - }; - - const MOCK_MENUS = [ - { - menus: [...dashboardMenus, ...createDemosMenus('super')], - userId: 0, - }, - { - menus: [...dashboardMenus, ...createDemosMenus('admin')], - userId: 1, - }, - { - menus: [...dashboardMenus, ...createDemosMenus('user')], - userId: 2, - }, - ]; - - return MOCK_MENUS.find((item) => item.userId === userId)?.menus ?? []; - } -} diff --git a/apps/backend-mock/src/modules/menu/menu.module.ts b/apps/backend-mock/src/modules/menu/menu.module.ts deleted file mode 100644 index 36c3331ba..000000000 --- a/apps/backend-mock/src/modules/menu/menu.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MenuController } from './menu.controller'; -import { MenuService } from './menu.service'; - -@Module({ - controllers: [MenuController], - providers: [MenuService], -}) -export class MenuModule {} diff --git a/apps/backend-mock/src/modules/menu/menu.service.ts b/apps/backend-mock/src/modules/menu/menu.service.ts deleted file mode 100644 index fa43f7e3f..000000000 --- a/apps/backend-mock/src/modules/menu/menu.service.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Injectable } from '@nestjs/common'; - -@Injectable() -export class MenuService {} diff --git a/apps/backend-mock/src/modules/mock/mock-db.json b/apps/backend-mock/src/modules/mock/mock-db.json deleted file mode 100644 index 0967ef424..000000000 --- a/apps/backend-mock/src/modules/mock/mock-db.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/apps/backend-mock/src/modules/mock/mock.controller.ts b/apps/backend-mock/src/modules/mock/mock.controller.ts deleted file mode 100644 index 96ff812af..000000000 --- a/apps/backend-mock/src/modules/mock/mock.controller.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { Response } from 'express'; - -import { Controller, Get, Query, Res } from '@nestjs/common'; - -@Controller('mock') -export class MockController { - /** - * 用于模拟任意的状态码 - * @param res - */ - @Get('status') - async mockAnyStatus( - @Res() res: Response, - @Query() { status }: { status: string }, - ) { - res.status(Number.parseInt(status, 10)).send({ - code: 1, - data: null, - error: null, - message: `code is ${status}`, - }); - } -} diff --git a/apps/backend-mock/src/modules/mock/mock.interface.ts b/apps/backend-mock/src/modules/mock/mock.interface.ts deleted file mode 100644 index eeab57167..000000000 --- a/apps/backend-mock/src/modules/mock/mock.interface.ts +++ /dev/null @@ -1,13 +0,0 @@ -interface User { - id: number; - password: string; - realName: string; - roles: string[]; - username: string; -} - -interface MockDatabaseData { - users: User[]; -} - -export type { MockDatabaseData, User }; diff --git a/apps/backend-mock/src/modules/mock/mock.module.ts b/apps/backend-mock/src/modules/mock/mock.module.ts deleted file mode 100644 index 50151b141..000000000 --- a/apps/backend-mock/src/modules/mock/mock.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MockController } from './mock.controller'; -import { MockService } from './mock.service'; - -@Module({ - controllers: [MockController], - exports: [MockService], - providers: [MockService], -}) -export class MockModule {} diff --git a/apps/backend-mock/src/modules/mock/mock.service.ts b/apps/backend-mock/src/modules/mock/mock.service.ts deleted file mode 100644 index ec800f74d..000000000 --- a/apps/backend-mock/src/modules/mock/mock.service.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { MockDatabaseData } from './mock.interface'; - -import fs from 'node:fs'; -import path from 'node:path'; - -import { Injectable, type OnModuleInit } from '@nestjs/common'; -import bcrypt from 'bcryptjs'; - -@Injectable() -export class MockService implements OnModuleInit { - private data: MockDatabaseData; - private readonly filePath: string; - - constructor() { - this.filePath = path.join(__dirname, '.', 'mock-db.json'); - this.loadData(); - } - - private loadData() { - const fileData = fs.readFileSync(this.filePath, 'utf8'); - this.data = JSON.parse(fileData); - } - - private saveData() { - fs.writeFileSync(this.filePath, JSON.stringify(this.data, null, 2)); - } - - addItem(collection: string, item: any) { - this.data[collection].push(item); - this.saveData(); - return item; - } - - clearCollection(collection: string) { - this.data[collection] = []; - this.saveData(); - return this.data[collection]; - } - - findAll(collection: string) { - return this.data[collection]; - } - - findOneById(collection: string, id: number) { - return this.data[collection].find((item) => item.id === id); - } - - async onModuleInit() { - // 清空表,并初始化两条数据 - await this.clearCollection('users'); - - // 密码哈希 - const hashPassword = await bcrypt.hash('123456', 10); - - await this.addItem('users', { - id: 0, - password: hashPassword, - realName: 'Vben', - roles: ['super'], - username: 'vben', - }); - - await this.addItem('users', { - id: 1, - password: hashPassword, - realName: 'Admin', - roles: ['admin'], - username: 'admin', - }); - await this.addItem('users', { - id: 2, - password: hashPassword, - realName: 'Jack', - roles: ['user'], - username: 'jack', - }); - const count = await this.findAll('users').length; - console.log('Database has been initialized with seed data, count:', count); - } -} diff --git a/apps/backend-mock/src/modules/users/users.module.ts b/apps/backend-mock/src/modules/users/users.module.ts deleted file mode 100644 index cc1c80894..000000000 --- a/apps/backend-mock/src/modules/users/users.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; - -import { MockModule } from '../mock/mock.module'; -import { UsersService } from './users.service'; - -@Module({ - exports: [UsersService], - imports: [MockModule], - providers: [UsersService], -}) -export class UsersModule {} diff --git a/apps/backend-mock/src/modules/users/users.service.ts b/apps/backend-mock/src/modules/users/users.service.ts deleted file mode 100644 index 08f8ebff3..000000000 --- a/apps/backend-mock/src/modules/users/users.service.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { UserEntity } from '@/models/entity/user.entity'; -import { Injectable } from '@nestjs/common'; - -import { MockService } from '../mock/mock.service'; - -@Injectable() -export class UsersService { - constructor(private mockService: MockService) {} - - /** - * Find user by username - * @param username - */ - async findOne(username: string): Promise { - const allUsers = await this.mockService.findAll('users'); - return allUsers.find((user) => user.username === username); - } -} diff --git a/apps/backend-mock/src/types/config.ts b/apps/backend-mock/src/types/config.ts deleted file mode 100644 index caf1943a6..000000000 --- a/apps/backend-mock/src/types/config.ts +++ /dev/null @@ -1,13 +0,0 @@ -interface AppConfig { - NODE_ENV: string; - apiPrefix: string; - port: number; -} - -interface JwtConfig { - expiresIn: string; - refreshSecret: string; - refreshexpiresIn: string; - secret: string; -} -export type { AppConfig, JwtConfig }; diff --git a/apps/backend-mock/src/types/express.d.ts b/apps/backend-mock/src/types/express.d.ts deleted file mode 100644 index a8ce7b50e..000000000 --- a/apps/backend-mock/src/types/express.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { UserEntity } from '@/models/entity/user.entity'; - -declare global { - interface Request { - user?: UserEntity; - } -} diff --git a/apps/backend-mock/src/types/index.ts b/apps/backend-mock/src/types/index.ts deleted file mode 100644 index 108b3cefa..000000000 --- a/apps/backend-mock/src/types/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './config'; -export * from './jwt'; diff --git a/apps/backend-mock/src/types/jwt.ts b/apps/backend-mock/src/types/jwt.ts deleted file mode 100644 index 272b873ef..000000000 --- a/apps/backend-mock/src/types/jwt.ts +++ /dev/null @@ -1,7 +0,0 @@ -interface JwtPayload { - id: number; - roles: string[]; - username: string; -} - -export { JwtPayload }; diff --git a/apps/backend-mock/src/utils/index.ts b/apps/backend-mock/src/utils/index.ts deleted file mode 100644 index af68a8960..000000000 --- a/apps/backend-mock/src/utils/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -function sleep(ms: number) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} - -export { sleep }; diff --git a/apps/backend-mock/tsconfig.json b/apps/backend-mock/tsconfig.json index 655a58544..43008af1c 100644 --- a/apps/backend-mock/tsconfig.json +++ b/apps/backend-mock/tsconfig.json @@ -1,25 +1,3 @@ { - "compilerOptions": { - "incremental": true, - "target": "ES2021", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "baseUrl": "./", - "module": "commonjs", - "paths": { - "@/*": ["./src/*"] - }, - "strictBindCallApply": false, - "strictNullChecks": false, - "noFallthroughCasesInSwitch": false, - "noImplicitAny": false, - "declaration": true, - "outDir": "./dist", - "removeComments": true, - "sourceMap": true, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": false, - "skipLibCheck": true - } + "extends": "./.nitro/types/tsconfig.json" } diff --git a/apps/backend-mock/utils/mock-data.ts b/apps/backend-mock/utils/mock-data.ts new file mode 100644 index 000000000..d4ecdc053 --- /dev/null +++ b/apps/backend-mock/utils/mock-data.ts @@ -0,0 +1,178 @@ +export const MOCK_USERS = [ + { + id: 0, + password: '123456', + realName: 'Vben', + roles: ['super'], + username: 'vben', + }, + { + id: 1, + password: '123456', + realName: 'Admin', + roles: ['admin'], + username: 'admin', + }, + { + id: 2, + password: '123456', + realName: 'Jack', + roles: ['user'], + username: 'jack', + }, +]; + +export const MOCK_CODES = [ + // super + { + codes: ['AC_100100', 'AC_100110', 'AC_100120', 'AC_100010'], + username: 'vben', + }, + { + // admin + codes: ['AC_100010', 'AC_100020', 'AC_100030'], + username: 'admin', + }, + { + // user + codes: ['AC_1000001', 'AC_1000002'], + username: 'jack', + }, +]; + +const dashboardMenus = [ + { + component: 'BasicLayout', + meta: { + order: -1, + title: 'page.dashboard.title', + }, + name: 'Dashboard', + path: '/', + redirect: '/analytics', + children: [ + { + name: 'Analytics', + path: '/analytics', + component: '/dashboard/analytics/index', + meta: { + affixTab: true, + title: 'page.dashboard.analytics', + }, + }, + { + name: 'Workspace', + path: '/workspace', + component: '/dashboard/workspace/index', + meta: { + title: 'page.dashboard.workspace', + }, + }, + ], + }, +]; + +const createDemosMenus = (role: 'admin' | 'super' | 'user') => { + const roleWithMenus = { + admin: { + component: '/demos/access/admin-visible', + meta: { + icon: 'mdi:button-cursor', + title: 'page.demos.access.adminVisible', + }, + name: 'AccessAdminVisible', + path: 'admin-visible', + }, + super: { + component: '/demos/access/super-visible', + meta: { + icon: 'mdi:button-cursor', + title: 'page.demos.access.superVisible', + }, + name: 'AccessSuperVisible', + path: 'super-visible', + }, + user: { + component: '/demos/access/user-visible', + meta: { + icon: 'mdi:button-cursor', + title: 'page.demos.access.userVisible', + }, + name: 'AccessUserVisible', + path: 'user-visible', + }, + }; + + return [ + { + component: 'BasicLayout', + meta: { + icon: 'ic:baseline-view-in-ar', + keepAlive: true, + order: 1000, + title: 'page.demos.title', + }, + name: 'Demos', + path: '/demos', + redirect: '/access', + children: [ + { + name: 'Access', + path: 'access', + meta: { + icon: 'mdi:cloud-key-outline', + title: 'page.demos.access.backendPermissions', + }, + redirect: '/demos/access/page-control', + children: [ + { + name: 'AccessPageControl', + path: 'page-control', + component: '/demos/access/index', + meta: { + icon: 'mdi:page-previous-outline', + title: 'page.demos.access.pageAccess', + }, + }, + { + name: 'AccessButtonControl', + path: 'button-control', + component: '/demos/access/button-control', + meta: { + icon: 'mdi:button-cursor', + title: 'page.demos.access.buttonControl', + }, + }, + { + name: 'AccessMenuVisible403', + path: 'menu-visible-403', + component: '/demos/access/menu-visible-403', + meta: { + authority: ['no-body'], + icon: 'mdi:button-cursor', + menuVisibleWithForbidden: true, + title: 'page.demos.access.menuVisible403', + }, + }, + roleWithMenus[role], + ], + }, + ], + }, + ]; +}; + +export const MOCK_MENUS = [ + { + menus: [...dashboardMenus, ...createDemosMenus('super')], + username: 'vben', + }, + { + menus: [...dashboardMenus, ...createDemosMenus('admin')], + username: 'admin', + }, + { + menus: [...dashboardMenus, ...createDemosMenus('user')], + username: 'user', + }, +]; diff --git a/apps/backend-mock/utils/response.ts b/apps/backend-mock/utils/response.ts new file mode 100644 index 000000000..83f11d2a2 --- /dev/null +++ b/apps/backend-mock/utils/response.ts @@ -0,0 +1,17 @@ +export function useResponseSuccess(data: T) { + return { + code: 0, + data, + error: null, + message: 'ok', + }; +} + +export function useResponseError(message: string, error: any = null) { + return { + code: -1, + data: null, + error, + message, + }; +} diff --git a/apps/web-antd/.env.development b/apps/web-antd/.env.development index f2f935bd6..447b41c4f 100644 --- a/apps/web-antd/.env.development +++ b/apps/web-antd/.env.development @@ -1,3 +1,5 @@ VITE_PUBLIC_PATH = / VITE_GLOB_API_URL=/api + +VITE_NITRO_MOCK = true diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json index c9342d9aa..047eca825 100644 --- a/apps/web-antd/package.json +++ b/apps/web-antd/package.json @@ -16,9 +16,9 @@ }, "type": "module", "scripts": { - "build": "pnpm vite build", + "build": "pnpm vite build --mode production", "build:analyze": "pnpm vite build --mode analyze", - "dev": "pnpm vite", + "dev": "pnpm vite --mode development", "preview": "vite preview", "typecheck": "vue-tsc --noEmit --skipLibCheck" }, diff --git a/apps/web-antd/src/apis/core/auth.ts b/apps/web-antd/src/apis/core/auth.ts new file mode 100644 index 000000000..c389f4234 --- /dev/null +++ b/apps/web-antd/src/apis/core/auth.ts @@ -0,0 +1,17 @@ +import type { UserApi } from '../types'; + +import { requestClient } from '#/forward'; + +/** + * 登录 + */ +export async function login(data: UserApi.LoginParams) { + return requestClient.post('/auth/login', data); +} + +/** + * 获取用户权限码 + */ +export async function getAccessCodes() { + return requestClient.get('/auth/codes'); +} diff --git a/apps/web-antd/src/apis/modules/index.ts b/apps/web-antd/src/apis/core/index.ts similarity index 66% rename from apps/web-antd/src/apis/modules/index.ts rename to apps/web-antd/src/apis/core/index.ts index 9acc852b6..28a5aef47 100644 --- a/apps/web-antd/src/apis/modules/index.ts +++ b/apps/web-antd/src/apis/core/index.ts @@ -1,3 +1,3 @@ +export * from './auth'; export * from './menu'; -export * from './mock'; export * from './user'; diff --git a/apps/web-antd/src/apis/modules/menu.ts b/apps/web-antd/src/apis/core/menu.ts similarity index 76% rename from apps/web-antd/src/apis/modules/menu.ts rename to apps/web-antd/src/apis/core/menu.ts index b6aa03238..432b228da 100644 --- a/apps/web-antd/src/apis/modules/menu.ts +++ b/apps/web-antd/src/apis/core/menu.ts @@ -5,8 +5,6 @@ import { requestClient } from '#/forward'; /** * 获取用户所有菜单 */ -async function getAllMenus() { - return requestClient.get('/menu/getAll'); +export async function getAllMenus() { + return requestClient.get('/menu/all'); } - -export { getAllMenus }; diff --git a/apps/web-antd/src/apis/core/user.ts b/apps/web-antd/src/apis/core/user.ts new file mode 100644 index 000000000..4fc6f12c1 --- /dev/null +++ b/apps/web-antd/src/apis/core/user.ts @@ -0,0 +1,10 @@ +import type { UserInfo } from '@vben/types'; + +import { requestClient } from '#/forward'; + +/** + * 获取用户信息 + */ +export async function getUserInfo() { + return requestClient.get('/user/info'); +} diff --git a/apps/web-antd/src/apis/demos/index.ts b/apps/web-antd/src/apis/demos/index.ts new file mode 100644 index 000000000..420cc02aa --- /dev/null +++ b/apps/web-antd/src/apis/demos/index.ts @@ -0,0 +1 @@ +export * from './status'; diff --git a/apps/web-antd/src/apis/modules/mock.ts b/apps/web-antd/src/apis/demos/status.ts similarity index 69% rename from apps/web-antd/src/apis/modules/mock.ts rename to apps/web-antd/src/apis/demos/status.ts index 03db1ccb8..00ef6e987 100644 --- a/apps/web-antd/src/apis/modules/mock.ts +++ b/apps/web-antd/src/apis/demos/status.ts @@ -4,7 +4,7 @@ import { requestClient } from '#/forward'; * 模拟任意状态码 */ async function getMockStatus(status: string) { - return requestClient.get('/mock/status', { params: { status } }); + return requestClient.get('/status', { params: { status } }); } export { getMockStatus }; diff --git a/apps/web-antd/src/apis/index.ts b/apps/web-antd/src/apis/index.ts index 26086dcf3..911672b77 100644 --- a/apps/web-antd/src/apis/index.ts +++ b/apps/web-antd/src/apis/index.ts @@ -1,2 +1,3 @@ -export * from './modules'; +export * from './core'; +export * from './demos'; export type * from './types'; diff --git a/apps/web-antd/src/apis/modules/user.ts b/apps/web-antd/src/apis/modules/user.ts deleted file mode 100644 index 07635b74e..000000000 --- a/apps/web-antd/src/apis/modules/user.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { UserInfo } from '@vben/types'; - -import type { UserApi } from '../types'; - -import { requestClient } from '#/forward'; - -/** - * 登录 - */ -async function userLogin(data: UserApi.LoginParams) { - return requestClient.post('/auth/login', data); -} - -/** - * 获取用户信息 - */ -async function getUserInfo() { - return requestClient.get('/auth/getUserInfo'); -} - -/** - * 获取用户权限码 - */ -async function getAccessCodes() { - return requestClient.get('/auth/getAccessCodes'); -} - -export { getAccessCodes, getUserInfo, userLogin }; diff --git a/apps/web-antd/src/forward/request.ts b/apps/web-antd/src/forward/request.ts index bc9f5648a..e115ca336 100644 --- a/apps/web-antd/src/forward/request.ts +++ b/apps/web-antd/src/forward/request.ts @@ -25,8 +25,8 @@ function createRequestClient() { tokenHandler: () => { const accessStore = useAccessStore(); return { - refreshToken: `Bearer ${accessStore.refreshToken}`, - token: `Bearer ${accessStore.accessToken}`, + refreshToken: `${accessStore.refreshToken}`, + token: `${accessStore.accessToken}`, }; }, unAuthorizedHandler: async () => { diff --git a/apps/web-antd/src/locales/langs/en-US.json b/apps/web-antd/src/locales/langs/en-US.json index 8be104a88..dec360db0 100644 --- a/apps/web-antd/src/locales/langs/en-US.json +++ b/apps/web-antd/src/locales/langs/en-US.json @@ -38,11 +38,14 @@ "title": "Features", "hideChildrenInMenu": "Hide Menu Children", "loginExpired": "Login Expired", - "breadcrumbNavigation": "Breadcrumb Navigation", - "breadcrumbLateral": "Lateral Mode", - "breadcrumbLateralDetail": "Lateral Mode Detail", - "breadcrumbLevel": "Level Mode", - "breadcrumbLevelDetail": "Level Mode Detail" + "tabs": "Tabs" + }, + "breadcrumb": { + "navigation": "Breadcrumb Navigation", + "lateral": "Lateral Mode", + "lateralDetail": "Lateral Mode Detail", + "level": "Level Mode", + "levelDetail": "Level Mode Detail" } } } diff --git a/apps/web-antd/src/locales/langs/zh-CN.json b/apps/web-antd/src/locales/langs/zh-CN.json index 376292d08..515e45bb1 100644 --- a/apps/web-antd/src/locales/langs/zh-CN.json +++ b/apps/web-antd/src/locales/langs/zh-CN.json @@ -40,11 +40,14 @@ "title": "功能", "hideChildrenInMenu": "隐藏子菜单", "loginExpired": "登录过期", - "breadcrumbNavigation": "面包屑导航", - "breadcrumbLateral": "平级模式", - "breadcrumbLevel": "层级模式", - "breadcrumbLevelDetail": "层级模式详情", - "breadcrumbLateralDetail": "平级模式详情" + "tabs": "标签页" + }, + "breadcrumb": { + "navigation": "面包屑导航", + "lateral": "平级模式", + "level": "层级模式", + "levelDetail": "层级模式详情", + "lateralDetail": "平级模式详情" } } } diff --git a/apps/web-antd/src/router/routes/modules/demos.ts b/apps/web-antd/src/router/routes/modules/demos.ts index e8bb77365..39d3e0e3a 100644 --- a/apps/web-antd/src/router/routes/modules/demos.ts +++ b/apps/web-antd/src/router/routes/modules/demos.ts @@ -16,6 +16,7 @@ const routes: RouteRecordRaw[] = [ path: '/demos', redirect: '/demos/access', children: [ + // 权限控制 { meta: { icon: 'mdi:shield-key-outline', @@ -87,6 +88,7 @@ const routes: RouteRecordRaw[] = [ }, ], }, + // 功能 { meta: { icon: 'mdi:feature-highlight', @@ -94,8 +96,17 @@ const routes: RouteRecordRaw[] = [ }, name: 'Features', path: 'features', - redirect: '/demos/features/hide-menu-children', + redirect: '/demos/features/tabs', children: [ + { + name: 'FeatureTabsDemo', + path: 'tabs', + component: () => import('#/views/demos/features/tabs/index.vue'), + meta: { + icon: 'lucide:app-window', + title: $t('page.demos.features.tabs'), + }, + }, { name: 'HideChildrenInMenuParent', path: 'hide-children-in-menu', @@ -127,62 +138,61 @@ const routes: RouteRecordRaw[] = [ title: $t('page.demos.features.loginExpired'), }, }, + ], + }, + // 面包屑导航 + { + name: 'BreadcrumbDemos', + path: 'breadcrumb', + meta: { + icon: 'lucide:navigation', + title: $t('page.demos.breadcrumb.navigation'), + }, + redirect: '/demos/breadcrumb/lateral', + children: [ + { + name: 'BreadcrumbLateral', + path: 'lateral', + component: () => import('#/views/demos/breadcrumb/lateral.vue'), + meta: { + icon: 'lucide:navigation', + title: $t('page.demos.breadcrumb.lateral'), + }, + }, + { + name: 'BreadcrumbLateralDetail', + path: 'lateral-detail', + component: () => + import('#/views/demos/breadcrumb/lateral-detail.vue'), + meta: { + activePath: '/demos/breadcrumb/lateral', + hideInMenu: true, + title: $t('page.demos.breadcrumb.lateralDetail'), + }, + }, { - name: 'BreadcrumbDemos', - path: 'breadcrumb', + name: 'BreadcrumbLevel', + path: 'level', meta: { icon: 'lucide:navigation', - title: $t('page.demos.features.breadcrumbNavigation'), + title: $t('page.demos.breadcrumb.level'), }, + redirect: '/demos/breadcrumb/level/detail', children: [ { - name: 'BreadcrumbLateral', - path: 'lateral', - component: () => - import('#/views/demos/features/breadcrumb/lateral.vue'), - meta: { - icon: 'lucide:navigation', - title: $t('page.demos.features.breadcrumbLateral'), - }, - }, - { - name: 'BreadcrumbLateralDetail', - path: 'lateral-detail', + name: 'BreadcrumbLevelDetail', + path: 'detail', component: () => - import( - '#/views/demos/features/breadcrumb/lateral-detail.vue' - ), + import('#/views/demos/breadcrumb/level-detail.vue'), meta: { - activePath: '/demos/features/breadcrumb/lateral', - hideInMenu: true, - title: $t('page.demos.features.breadcrumbLateralDetail'), + title: $t('page.demos.breadcrumb.levelDetail'), }, }, - { - name: 'BreadcrumbLevel', - path: 'level', - meta: { - icon: 'lucide:navigation', - title: $t('page.demos.features.breadcrumbLevel'), - }, - children: [ - { - name: 'BreadcrumbLevelDetail', - path: 'detail', - component: () => - import( - '#/views/demos/features/breadcrumb/level-detail.vue' - ), - meta: { - title: $t('page.demos.features.breadcrumbLevelDetail'), - }, - }, - ], - }, ], }, ], }, + // 缺省页 { meta: { icon: 'mdi:lightbulb-error-outline', @@ -231,6 +241,7 @@ const routes: RouteRecordRaw[] = [ }, ], }, + // 菜单徽标 { meta: { badgeType: 'dot', @@ -275,6 +286,7 @@ const routes: RouteRecordRaw[] = [ }, ], }, + // 外部链接 { meta: { icon: 'ic:round-settings-input-composite', @@ -350,6 +362,7 @@ const routes: RouteRecordRaw[] = [ }, ], }, + // 嵌套菜单 { meta: { icon: 'ic:round-menu', diff --git a/apps/web-antd/src/router/routes/modules/vben.ts b/apps/web-antd/src/router/routes/modules/vben.ts index 802824cc1..4df1475e5 100644 --- a/apps/web-antd/src/router/routes/modules/vben.ts +++ b/apps/web-antd/src/router/routes/modules/vben.ts @@ -10,11 +10,12 @@ const routes: RouteRecordRaw[] = [ component: BasicLayout, meta: { badgeType: 'dot', + badgeVariants: 'destructive', icon: VBEN_LOGO_URL, order: 9999, - title: 'Vben', + title: $t('page.vben.title'), }, - name: 'AboutLayout', + name: 'VbenProject', path: '/vben-admin', redirect: '/vben-admin/about', children: [ @@ -24,6 +25,7 @@ const routes: RouteRecordRaw[] = [ component: () => import('#/views/_core/vben/about/index.vue'), meta: { badgeType: 'dot', + badgeVariants: 'destructive', icon: 'lucide:copyright', title: $t('page.vben.about'), }, diff --git a/apps/web-antd/src/store/modules/access.ts b/apps/web-antd/src/store/modules/access.ts index c09b78ae4..13ced8c33 100644 --- a/apps/web-antd/src/store/modules/access.ts +++ b/apps/web-antd/src/store/modules/access.ts @@ -11,7 +11,7 @@ import { useCoreAccessStore } from '@vben-core/stores'; import { notification } from 'ant-design-vue'; import { defineStore } from 'pinia'; -import { getAccessCodes, getUserInfo, userLogin } from '#/apis'; +import { getAccessCodes, getUserInfo, login } from '#/apis'; import { $t } from '#/locales'; export const useAccessStore = defineStore('access', () => { @@ -53,7 +53,7 @@ export const useAccessStore = defineStore('access', () => { let userInfo: UserInfo | null = null; try { loading.value = true; - const { accessToken, refreshToken } = await userLogin(params); + const { accessToken, refreshToken } = await login(params); // 如果成功获取到 accessToken // If accessToken is successfully obtained diff --git a/apps/web-antd/src/views/demos/access/button-control.vue b/apps/web-antd/src/views/demos/access/button-control.vue index ba605333b..cae47d487 100644 --- a/apps/web-antd/src/views/demos/access/button-control.vue +++ b/apps/web-antd/src/views/demos/access/button-control.vue @@ -57,9 +57,9 @@ async function changeAccount(role: string) {
切换不同的账号,观察按钮变化。
-
+
- 当前角色: + 当前角色: {{ accessStore.userRoles?.[0] }} @@ -81,45 +81,42 @@ async function changeAccount(role: string) {
-
-
组件形式控制 - 权限码方式
- +
+
组件形式控制 - 权限码方式
+ - + - + - +
-
-
组件形式控制 - 用户角色方式
- +
+
组件形式控制 - 用户角色方式
+ - + - + - +
-
-
函数形式控制
+
+
函数形式控制
diff --git a/apps/web-antd/src/views/demos/access/index.vue b/apps/web-antd/src/views/demos/access/index.vue index 5e3ad64d3..93705f926 100644 --- a/apps/web-antd/src/views/demos/access/index.vue +++ b/apps/web-antd/src/views/demos/access/index.vue @@ -67,8 +67,8 @@ async function handleToggleAccessMode() {
-
- 当前权限模式: +
+ 当前权限模式: {{ accessMode === 'frontend' ? '前端权限控制' : '后端权限控制' }} @@ -76,9 +76,9 @@ async function handleToggleAccessMode() { 切换为{{ accessMode === 'frontend' ? '后端' : '前端' }}权限模式
-
+
- 当前账号: + 当前账号: {{ accessStore.userRoles?.[0] }} diff --git a/apps/web-antd/src/views/demos/features/breadcrumb/lateral-detail.vue b/apps/web-antd/src/views/demos/breadcrumb/lateral-detail.vue similarity index 100% rename from apps/web-antd/src/views/demos/features/breadcrumb/lateral-detail.vue rename to apps/web-antd/src/views/demos/breadcrumb/lateral-detail.vue diff --git a/apps/web-antd/src/views/demos/features/breadcrumb/lateral.vue b/apps/web-antd/src/views/demos/breadcrumb/lateral.vue similarity index 100% rename from apps/web-antd/src/views/demos/features/breadcrumb/lateral.vue rename to apps/web-antd/src/views/demos/breadcrumb/lateral.vue diff --git a/apps/web-antd/src/views/demos/features/breadcrumb/level-detail.vue b/apps/web-antd/src/views/demos/breadcrumb/level-detail.vue similarity index 100% rename from apps/web-antd/src/views/demos/features/breadcrumb/level-detail.vue rename to apps/web-antd/src/views/demos/breadcrumb/level-detail.vue diff --git a/apps/web-antd/src/views/demos/features/login-expired/index.vue b/apps/web-antd/src/views/demos/features/login-expired/index.vue index 6ac0b777f..73f2bb9a1 100644 --- a/apps/web-antd/src/views/demos/features/login-expired/index.vue +++ b/apps/web-antd/src/views/demos/features/login-expired/index.vue @@ -23,17 +23,21 @@ async function handleClick(type: LoginExpiredModeType) {

登录过期演示

- 401状态码转到登录页,登录成功后跳转回原页面。 + 接口请求遇到401状态码时,需要重新登录。有两种方式: +
1.转到登录页,登录成功后跳转回原页面
+
+ 2.弹出重新登录弹窗,登录后关闭弹窗,不进行任何页面跳转(刷新后调整登录页面) +
-
-
跳转登录页面方式
+
+
跳转登录页面方式
-
-
登录弹窗方式
+
+
登录弹窗方式
diff --git a/apps/web-antd/src/views/demos/features/tabs/index.vue b/apps/web-antd/src/views/demos/features/tabs/index.vue new file mode 100644 index 000000000..74393f1ed --- /dev/null +++ b/apps/web-antd/src/views/demos/features/tabs/index.vue @@ -0,0 +1,86 @@ + + + diff --git a/internal/lint-configs/commitlint-config/package.json b/internal/lint-configs/commitlint-config/package.json index a6716adc9..1a1de0d05 100644 --- a/internal/lint-configs/commitlint-config/package.json +++ b/internal/lint-configs/commitlint-config/package.json @@ -32,7 +32,7 @@ "@commitlint/config-conventional": "^19.2.2", "@vben/node-utils": "workspace:*", "commitlint-plugin-function-rules": "^4.0.0", - "cz-git": "^1.9.3", - "czg": "^1.9.3" + "cz-git": "^1.9.4", + "czg": "^1.9.4" } } diff --git a/internal/lint-configs/eslint-config/src/configs/ignores.ts b/internal/lint-configs/eslint-config/src/configs/ignores.ts index f7041f215..95ac1aefb 100644 --- a/internal/lint-configs/eslint-config/src/configs/ignores.ts +++ b/internal/lint-configs/eslint-config/src/configs/ignores.ts @@ -9,6 +9,8 @@ export async function ignores(): Promise { '**/dist-*', '**/*-dist', '**/.husky', + '**/.nitro', + '**/.output', '**/Dockerfile', '**/package-lock.json', '**/yarn.lock', diff --git a/internal/lint-configs/eslint-config/src/custom-config.ts b/internal/lint-configs/eslint-config/src/custom-config.ts index 8abe50f85..0ebff774f 100644 --- a/internal/lint-configs/eslint-config/src/custom-config.ts +++ b/internal/lint-configs/eslint-config/src/custom-config.ts @@ -121,10 +121,17 @@ const customConfig: Linter.FlatConfig[] = [ files: ['apps/backend-mock/**/**'], rules: { '@typescript-eslint/no-extraneous-class': 'off', + 'n/prefer-global/buffer': 'off', 'no-console': 'off', 'unicorn/prefer-module': 'off', }, }, + { + files: ['internal/**/**'], + rules: { + 'no-console': 'off', + }, + }, ]; export { customConfig }; diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index f2b672a7d..f53430cb2 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -31,6 +31,7 @@ "@jspm/generator": "^2.1.2", "cheerio": "1.0.0-rc.12", "html-minifier-terser": "^7.2.0", + "nitropack": "^2.9.7", "resolve.exports": "^2.0.2", "vite-plugin-lib-inject-css": "^2.1.1", "vite-plugin-pwa": "^0.20.0", diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index 38537a10a..e058ddf0c 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -33,6 +33,12 @@ function defineApplicationConfig(userConfigPromise: DefineApplicationOptions) { isBuild, license: true, mode, + nitroMock: !isBuild, + nitroMockOptions: {}, + print: !isBuild, + printInfoMap: { + 'Vben Admin Docs': 'https://docs.vben.pro', + }, pwa: true, ...application, }); diff --git a/internal/vite-config/src/plugins/extra-app-config.ts b/internal/vite-config/src/plugins/extra-app-config.ts index f835ce193..813819bbd 100644 --- a/internal/vite-config/src/plugins/extra-app-config.ts +++ b/internal/vite-config/src/plugins/extra-app-config.ts @@ -47,10 +47,8 @@ async function viteExtraAppConfigPlugin({ type: 'asset', }); - // eslint-disable-next-line no-console console.log(colors.cyan(`✨configuration file is build successfully!`)); } catch (error) { - // eslint-disable-next-line no-console console.log( colors.red( `configuration file configuration file failed to package:\n${error}`, diff --git a/internal/vite-config/src/plugins/importmap.ts b/internal/vite-config/src/plugins/importmap.ts index 2fbf9d42a..600993d93 100644 --- a/internal/vite-config/src/plugins/importmap.ts +++ b/internal/vite-config/src/plugins/importmap.ts @@ -70,7 +70,6 @@ async function viteImportMapPlugin( if (options?.debug) { (async () => { for await (const { message, type } of generator.logStream()) { - // eslint-disable-next-line no-console console.log(`${type}: ${message}`); } })(); diff --git a/internal/vite-config/src/plugins/index.ts b/internal/vite-config/src/plugins/index.ts index 5ba23b89e..e50f0e70a 100644 --- a/internal/vite-config/src/plugins/index.ts +++ b/internal/vite-config/src/plugins/index.ts @@ -23,6 +23,8 @@ import { viteImportMapPlugin } from './importmap'; import { viteInjectAppLoadingPlugin } from './inject-app-loading'; import { viteMetadataPlugin } from './inject-metadata'; import { viteLicensePlugin } from './license'; +import { viteNitroMockPlugin } from './nitor-mock'; +import { vitePrintPlugin } from './print'; /** * 获取条件成立的 vite 插件 @@ -99,6 +101,10 @@ async function loadApplicationPlugins( importmapOptions, injectAppLoading, license, + nitroMock, + nitroMockOptions, + print, + printInfoMap, pwa, pwaOptions, ...commonOptions @@ -120,6 +126,18 @@ async function loadApplicationPlugins( ]; }, }, + { + condition: print, + plugins: async () => { + return [await vitePrintPlugin({ infoMap: printInfoMap })]; + }, + }, + { + condition: nitroMock, + plugins: async () => { + return [await viteNitroMockPlugin(nitroMockOptions)]; + }, + }, { condition: injectAppLoading, plugins: async () => [await viteInjectAppLoadingPlugin(!!isBuild, env)], diff --git a/internal/vite-config/src/plugins/inject-metadata.ts b/internal/vite-config/src/plugins/inject-metadata.ts index a88999704..a234b0704 100644 --- a/internal/vite-config/src/plugins/inject-metadata.ts +++ b/internal/vite-config/src/plugins/inject-metadata.ts @@ -15,6 +15,7 @@ function resolvePackageVersion( async function resolveMonorepoDependencies() { const { packages } = await getPackages(); + const resultDevDependencies: Record = {}; const resultDependencies: Record = {}; const pkgsMeta: Record = {}; diff --git a/internal/vite-config/src/plugins/nitor-mock.ts b/internal/vite-config/src/plugins/nitor-mock.ts new file mode 100644 index 000000000..0236fae66 --- /dev/null +++ b/internal/vite-config/src/plugins/nitor-mock.ts @@ -0,0 +1,89 @@ +import type { PluginOption } from 'vite'; + +import type { NitroMockPluginOptions } from '../typing'; + +import { colors, consola, getPackage } from '@vben/node-utils'; + +import { build, createDevServer, createNitro, prepare } from 'nitropack'; + +const hmrKeyRe = /^runtimeConfig\.|routeRules\./; + +export const viteNitroMockPlugin = ({ + mockServerPackage = '@vben/backend-mock', + port = 5320, + verbose = true, +}: NitroMockPluginOptions = {}): PluginOption => { + return { + async configureServer(server) { + const pkg = await getPackage(mockServerPackage); + if (!pkg) { + consola.error(`Package ${mockServerPackage} not found.`); + return; + } + + runNitroServer(pkg.dir, port, verbose); + + const _printUrls = server.printUrls; + server.printUrls = () => { + _printUrls(); + + consola.log( + ` ${colors.green('➜')} ${colors.bold('Nitro Mock Server')}: ${colors.cyan(`http://localhost:${port}/api`)}`, + ); + }; + }, + enforce: 'pre', + name: 'vite:mock-server', + }; +}; + +async function runNitroServer(rootDir: string, port: number, verbose: boolean) { + let nitro: any; + const reload = async () => { + if (nitro) { + consola.info('Restarting dev server...'); + if ('unwatch' in nitro.options._c12) { + await nitro.options._c12.unwatch(); + } + await nitro.close(); + } + nitro = await createNitro( + { + dev: true, + preset: 'nitro-dev', + rootDir, + }, + { + c12: { + async onUpdate({ getDiff, newConfig }) { + const diff = getDiff(); + if (diff.length === 0) { + return; + } + verbose && + consola.info( + `Nitro config updated:\n${diff + .map((entry) => ` ${entry.toString()}`) + .join('\n')}`, + ); + await (diff.every((e) => hmrKeyRe.test(e.key)) + ? nitro.updateConfig(newConfig.config) + : reload()); + }, + }, + watch: true, + }, + ); + nitro.hooks.hookOnce('restart', reload); + const server = createDevServer(nitro); + await server.listen(port, { showURL: false }); + await prepare(nitro); + await build(nitro); + + if (verbose) { + console.log(''); + consola.success(colors.bold(colors.green('Nitro Mock Server started.'))); + } + }; + await reload(); +} diff --git a/internal/vite-config/src/plugins/print.ts b/internal/vite-config/src/plugins/print.ts new file mode 100644 index 000000000..0146b8a2a --- /dev/null +++ b/internal/vite-config/src/plugins/print.ts @@ -0,0 +1,28 @@ +import type { PluginOption } from 'vite'; + +import type { PrintPluginOptions } from '../typing'; + +import { colors } from '@vben/node-utils'; + +export const vitePrintPlugin = ( + options: PrintPluginOptions = {}, +): PluginOption => { + const { infoMap = {} } = options; + + return { + configureServer(server) { + const _printUrls = server.printUrls; + server.printUrls = () => { + _printUrls(); + + for (const [key, value] of Object.entries(infoMap)) { + console.log( + ` ${colors.green('➜')} ${colors.bold(key)}: ${colors.cyan(value)}`, + ); + } + }; + }, + enforce: 'pre', + name: 'vite:print-info', + }; +}; diff --git a/internal/vite-config/src/typing.ts b/internal/vite-config/src/typing.ts index 5b5d6f883..a3332f7c4 100644 --- a/internal/vite-config/src/typing.ts +++ b/internal/vite-config/src/typing.ts @@ -9,6 +9,29 @@ interface IImportMap { [scope: string]: Record; }; } +interface PrintPluginOptions { + /** + * 打印的数据 + */ + infoMap?: Record; +} + +interface NitroMockPluginOptions { + /** + * mock server 包名 + */ + mockServerPackage?: string; + + /** + * mock 服务端口 + */ + port?: number; + + /** + * mock 日志是否打印 + */ + verbose?: boolean; +} /** * importmap 插件配置 @@ -71,6 +94,14 @@ interface ApplicationPluginOptions extends CommonPluginOptions { injectGlobalScss?: boolean; /** 是否注入版权信息 */ license?: boolean; + /** 是否开启nitro mock */ + nitroMock?: boolean; + /** nitro mock 插件配置 */ + nitroMockOptions?: NitroMockPluginOptions; + /** dev是否开启mock服务 */ + print?: boolean; + /** 打印插件配置 */ + printInfoMap?: PrintPluginOptions['infoMap']; /** 是否开启pwa */ pwa?: boolean; /** pwa 插件配置 */ @@ -111,4 +142,6 @@ export type { IImportMap, ImportmapPluginOptions, LibraryPluginOptions, + NitroMockPluginOptions, + PrintPluginOptions, }; diff --git a/internal/vite-config/src/utils/env.ts b/internal/vite-config/src/utils/env.ts index 41b1a0ac9..9cc378439 100644 --- a/internal/vite-config/src/utils/env.ts +++ b/internal/vite-config/src/utils/env.ts @@ -13,6 +13,7 @@ function getConfFiles() { const script = process.env.npm_lifecycle_script as string; const reg = /--mode ([\d_a-z]+)/; const result = reg.exec(script); + if (result) { const mode = result[1]; return ['.env', `.env.${mode}`]; @@ -64,10 +65,12 @@ async function loadAndConvertEnv( const compressTypes = compress .split(',') .filter((item) => item === 'brotli' || item === 'gzip'); + return { appTitle: envConfig?.VITE_GLOB_APP_TITLE ?? 'Vben Admin', compress: !!compress, compressTypes: compressTypes as ('brotli' | 'gzip')[], + nitroMock: !!envConfig.VITE_NITRO_MOCK, port: Number(envConfig.VITE_PORT) || 5173, pwa: !!pwa, visualizer: !!visualizer, diff --git a/package.json b/package.json index c56113eb6..f68c08f1b 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,8 @@ "check:type": "turbo run typecheck", "clean": "vsh clean", "commit": "czg", - "dev": "cross-env TURBO_UI=1 turbo run dev", + "dev": "cross-env turbo run dev", + "dev:ui": "cross-env TURBO_UI=1 turbo run dev", "docs:dev": "pnpm -F @vben/website run docs:dev", "format": "vsh lint --format", "lint": "vsh lint", diff --git a/packages/@core/forward/preferences/src/preferences.ts b/packages/@core/forward/preferences/src/preferences.ts index f2f4d6686..b160527ab 100644 --- a/packages/@core/forward/preferences/src/preferences.ts +++ b/packages/@core/forward/preferences/src/preferences.ts @@ -4,7 +4,7 @@ import type { Preferences } from './types'; import { markRaw, reactive, readonly, watch } from 'vue'; -import { StorageManager, merge } from '@vben-core/toolkit'; +import { StorageManager, isMacOs, merge } from '@vben-core/toolkit'; import { breakpointsTailwind, @@ -46,7 +46,7 @@ class PreferenceManager { this.savePreferences = useDebounceFn( (preference: Preferences) => this._savePreferences(preference), - 200, + 100, ); } @@ -81,6 +81,11 @@ class PreferenceManager { } } + private initPlatform() { + const dom = document.documentElement; + dom.dataset.platform = isMacOs() ? 'macOs' : 'window'; + } + /** * 从缓存中加载偏好设置。如果缓存中没有找到对应的偏好设置,则返回默认偏好设置。 */ @@ -187,6 +192,8 @@ class PreferenceManager { this.updatePreferences(mergedPreference); this.setupWatcher(); + + this.initPlatform(); // 标记为已初始化 this.isInitialized = true; } diff --git a/packages/@core/forward/stores/src/modules/tabbar.ts b/packages/@core/forward/stores/src/modules/tabbar.ts index a42390d87..45199bea7 100644 --- a/packages/@core/forward/stores/src/modules/tabbar.ts +++ b/packages/@core/forward/stores/src/modules/tabbar.ts @@ -3,7 +3,7 @@ import type { RouteRecordNormalized, Router } from 'vue-router'; import { toRaw } from 'vue'; -import { startProgress, stopProgress } from '@vben-core/toolkit'; +import { openWindow, startProgress, stopProgress } from '@vben-core/toolkit'; import { acceptHMRUpdate, defineStore } from 'pinia'; @@ -226,6 +226,18 @@ const useCoreTabbarStore = defineStore('core-tabbar', { await this.closeTab(this.tabs[index], router); }, + /** + * @zh_CN 新窗口打开标签页 + * @param tab + */ + async openTabInNewWindow(tab: TabDefinition) { + const { hash, origin } = location; + const path = tab.fullPath; + const fullPath = path.startsWith('/') ? path : `/${path}`; + const url = `${origin}${hash ? '/#' : ''}${fullPath}`; + openWindow(url, { target: '_blank' }); + }, + /** * @zh_CN 固定标签页 * @param tab @@ -257,6 +269,23 @@ const useCoreTabbarStore = defineStore('core-tabbar', { this.renderRouteView = true; stopProgress(); }, + + /** + * @zh_CN 重置标签页标题 + */ + async resetTabTitle(tab: TabDefinition) { + if (!tab?.meta?.newTabTitle) { + return; + } + const findTab = this.tabs.find( + (item) => getTabPath(item) === getTabPath(tab), + ); + if (findTab) { + findTab.meta.newTabTitle = undefined; + await this.updateCacheTab(); + } + }, + /** * 设置固定标签页 * @param tabs @@ -267,6 +296,21 @@ const useCoreTabbarStore = defineStore('core-tabbar', { this.addTab(routeToTab(tab)); } }, + + /** + * @zh_CN 设置标签页标题 + * @param tab + * @param title + */ + async setTabTitle(tab: TabDefinition, title: string) { + const findTab = this.tabs.find( + (item) => getTabPath(item) === getTabPath(tab), + ); + if (findTab) { + findTab.meta.newTabTitle = title; + await this.updateCacheTab(); + } + }, /** * @zh_CN 设置标签页顺序 * @param oldIndex @@ -278,6 +322,15 @@ const useCoreTabbarStore = defineStore('core-tabbar', { this.tabs.splice(newIndex, 0, currentTab); this.dragEndIndex = this.dragEndIndex + 1; }, + /** + * @zh_CN 切换固定标签页 + * @param tab + */ + async toggleTabPin(tab: TabDefinition) { + const affixTab = tab?.meta?.affixTab ?? false; + await (affixTab ? this.unpinTab(tab) : this.pinTab(tab)); + }, + /** * @zh_CN 取消固定标签页 * @param tab diff --git a/packages/@core/hooks/package.json b/packages/@core/hooks/package.json index 603e89017..d7c38dca5 100644 --- a/packages/@core/hooks/package.json +++ b/packages/@core/hooks/package.json @@ -37,11 +37,14 @@ }, "dependencies": { "@vben-core/constants": "workspace:*", + "@vben-core/preferences": "workspace:*", + "@vben-core/stores": "workspace:*", "@vben-core/toolkit": "workspace:*", "@vueuse/core": "^10.11.0", "radix-vue": "^1.9.1", "sortablejs": "^1.15.2", - "vue": "^3.4.32" + "vue": "^3.4.32", + "vue-router": "^4.4.0" }, "devDependencies": { "@types/sortablejs": "^1.15.8" diff --git a/packages/@core/hooks/src/index.ts b/packages/@core/hooks/src/index.ts index f2abfedff..519c82c3b 100644 --- a/packages/@core/hooks/src/index.ts +++ b/packages/@core/hooks/src/index.ts @@ -1,6 +1,9 @@ export * from './use-content-height'; +export * from './use-content-maximize'; export * from './use-namespace'; +export * from './use-refresh'; export * from './use-sortable'; +export * from './use-tabs'; export { useEmitAsProps, useForwardExpose, diff --git a/packages/@core/hooks/src/use-content-maximize.ts b/packages/@core/hooks/src/use-content-maximize.ts new file mode 100644 index 000000000..07dfe2fd8 --- /dev/null +++ b/packages/@core/hooks/src/use-content-maximize.ts @@ -0,0 +1,24 @@ +import { updatePreferences, usePreferences } from '@vben-core/preferences'; +/** + * 主体区域最大化 + */ +export function useContentMaximize() { + const { contentIsMaximize } = usePreferences(); + + function toggleMaximize() { + const isMaximize = contentIsMaximize.value; + + updatePreferences({ + header: { + hidden: !isMaximize, + }, + sidebar: { + hidden: !isMaximize, + }, + }); + } + return { + contentIsMaximize, + toggleMaximize, + }; +} diff --git a/packages/@core/hooks/src/use-refresh.ts b/packages/@core/hooks/src/use-refresh.ts new file mode 100644 index 000000000..804a156e0 --- /dev/null +++ b/packages/@core/hooks/src/use-refresh.ts @@ -0,0 +1,16 @@ +import { useRouter } from 'vue-router'; + +import { useCoreTabbarStore } from '@vben-core/stores'; + +export function useRefresh() { + const router = useRouter(); + const coreTabbarStore = useCoreTabbarStore(); + + function refresh() { + coreTabbarStore.refresh(router); + } + + return { + refresh, + }; +} diff --git a/packages/@core/hooks/src/use-tabs.ts b/packages/@core/hooks/src/use-tabs.ts new file mode 100644 index 000000000..830a0664b --- /dev/null +++ b/packages/@core/hooks/src/use-tabs.ts @@ -0,0 +1,111 @@ +import { type RouteLocationNormalized, useRoute, useRouter } from 'vue-router'; + +import { useCoreTabbarStore } from '@vben-core/stores'; + +export function useTabs() { + const router = useRouter(); + const route = useRoute(); + const coreTabbarStore = useCoreTabbarStore(); + + async function closeLeftTabs(tab?: RouteLocationNormalized) { + await coreTabbarStore.closeLeftTabs(tab || route); + } + + async function closeAllTabs() { + await coreTabbarStore.closeAllTabs(router); + } + + async function closeRightTabs(tab?: RouteLocationNormalized) { + await coreTabbarStore.closeRightTabs(tab || route); + } + + async function closeOtherTabs(tab?: RouteLocationNormalized) { + await coreTabbarStore.closeOtherTabs(tab || route); + } + + async function closeCurrentTab(tab?: RouteLocationNormalized) { + await coreTabbarStore.closeTab(tab || route, router); + } + + async function pinTab(tab?: RouteLocationNormalized) { + await coreTabbarStore.pinTab(tab || route); + } + + async function unpinTab(tab?: RouteLocationNormalized) { + await coreTabbarStore.unpinTab(tab || route); + } + + async function toggleTabPin(tab?: RouteLocationNormalized) { + await coreTabbarStore.toggleTabPin(tab || route); + } + + async function refreshTab() { + await coreTabbarStore.refresh(router); + } + + async function openTabInNewWindow(tab?: RouteLocationNormalized) { + coreTabbarStore.openTabInNewWindow(tab || route); + } + + async function closeTabByKey(key: string) { + await coreTabbarStore.closeTabByKey(key, router); + } + + async function setTabTitle(title: string) { + await coreTabbarStore.setTabTitle(route, title); + } + + async function resetTabTitle() { + await coreTabbarStore.resetTabTitle(route); + } + + /** + * 获取操作是否禁用 + * @param tab + */ + function getTabDisableState(tab: RouteLocationNormalized = route) { + const tabs = coreTabbarStore.getTabs; + const affixTabs = coreTabbarStore.affixTabs; + const index = tabs.findIndex((item) => item.path === tab.path); + + const disabled = tabs.length <= 1; + + const { meta } = tab; + const affixTab = meta?.affixTab ?? false; + const isCurrentTab = route.path === tab.path; + + // 当前处于最左侧或者减去固定标签页的数量等于0 + const disabledCloseLeft = + index === 0 || index - affixTabs.length <= 0 || !isCurrentTab; + + const disabledCloseRight = !isCurrentTab || index === tabs.length - 1; + + const disabledCloseOther = + disabled || !isCurrentTab || tabs.length - affixTabs.length <= 1; + return { + disabledCloseAll: disabled, + disabledCloseCurrent: !!affixTab || disabled, + disabledCloseLeft, + disabledCloseOther, + disabledCloseRight, + disabledRefresh: !isCurrentTab, + }; + } + + return { + closeAllTabs, + closeCurrentTab, + closeLeftTabs, + closeOtherTabs, + closeRightTabs, + closeTabByKey, + getTabDisableState, + openTabInNewWindow, + pinTab, + refreshTab, + resetTabTitle, + setTabTitle, + toggleTabPin, + unpinTab, + }; +} diff --git a/packages/@core/locales/src/langs/en-US.json b/packages/@core/locales/src/langs/en-US.json index 4d3dc6116..ea4308307 100644 --- a/packages/@core/locales/src/langs/en-US.json +++ b/packages/@core/locales/src/langs/en-US.json @@ -13,6 +13,7 @@ "workspace": "Workspace" }, "vben": { + "title": "Project", "about": "About", "document": "Document" } diff --git a/packages/@core/locales/src/langs/zh-CN.json b/packages/@core/locales/src/langs/zh-CN.json index bd5c58c7e..8d335c2d3 100644 --- a/packages/@core/locales/src/langs/zh-CN.json +++ b/packages/@core/locales/src/langs/zh-CN.json @@ -13,6 +13,7 @@ "workspace": "工作台" }, "vben": { + "title": "项目", "about": "关于", "document": "文档" } @@ -123,7 +124,7 @@ "sendCode": "获取验证码", "sendText": "{0}秒后重新获取", "thirdPartyLogin": "其他登录方式", - "loginAgainTitle": "请重新登录", + "loginAgainTitle": "重新登录", "loginAgainSubTitle": "您的登录状态已过期,请重新登录以继续。", "layout": { "center": "居中", diff --git a/packages/@core/shared/design/src/css/global.css b/packages/@core/shared/design/src/css/global.css index 3a060f796..c6d95c98d 100644 --- a/packages/@core/shared/design/src/css/global.css +++ b/packages/@core/shared/design/src/css/global.css @@ -83,19 +83,20 @@ @apply m-0 appearance-none; } - /* 考虑只在mac下打开 */ + /* 只有非mac下才进行调整,mac下使用默认滚动条 */ + html:not([data-platform='macOs']) { + *::-webkit-scrollbar { + @apply h-[1px] w-[10px]; + } - /* *::-webkit-scrollbar { - @apply h-[1px] w-[10px]; - } + *::-webkit-scrollbar-thumb { + @apply bg-border rounded-sm border-none; + } - *::-webkit-scrollbar-thumb { - @apply bg-border rounded-sm border-none; + *::-webkit-scrollbar-track { + @apply rounded-sm border-none bg-transparent shadow-none; + } } - - *::-webkit-scrollbar-track { - @apply rounded-sm border-none bg-transparent shadow-none; - } */ } @layer components { diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue b/packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue index 6805835c8..ba2f4eb97 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue @@ -54,7 +54,7 @@ function handleScroll(event: Event) { v-if="shadow" :class="{ 'opacity-100': !isAtTop && !isAtBottom, - 'border-border border-t': shadowBorder && !isAtTop && !isAtBottom, + 'border-border border-b': shadowBorder && !isAtTop && !isAtBottom, }" class="scrollbar-bottom-shadow pointer-events-none absolute bottom-0 z-10 h-12 w-full opacity-0 transition-opacity duration-300 ease-in-out will-change-[opacity]" >
diff --git a/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue b/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue index 4f89d15aa..73a3f459a 100644 --- a/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue +++ b/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue @@ -71,7 +71,7 @@ function scrollIntoView() { + + diff --git a/packages/effects/access/src/access-control.vue b/packages/effects/access/src/access-control.vue index 516a68cfb..7205546b6 100644 --- a/packages/effects/access/src/access-control.vue +++ b/packages/effects/access/src/access-control.vue @@ -11,7 +11,7 @@ interface Props { * Specified codes is visible * @default [] */ - permissions?: string[]; + codes?: string[]; /** * 通过什么方式来控制组件,如果是 role,则传入角色,如果是 code,则传入权限码 @@ -25,21 +25,19 @@ defineOptions({ }); const props = withDefaults(defineProps(), { - permissions: () => [], + codes: () => [], type: 'role', }); const { hasAccessByCodes, hasAccessByRoles } = useAccess(); const hasAuth = computed(() => { - const { permissions, type } = props; - return type === 'role' - ? hasAccessByRoles(permissions) - : hasAccessByCodes(permissions); + const { codes, type } = props; + return type === 'role' ? hasAccessByRoles(codes) : hasAccessByCodes(codes); }); diff --git a/packages/effects/layouts/src/basic/content/content.vue b/packages/effects/layouts/src/basic/content/content.vue index 48f952387..5fa5a4f6e 100644 --- a/packages/effects/layouts/src/basic/content/content.vue +++ b/packages/effects/layouts/src/basic/content/content.vue @@ -20,7 +20,7 @@ const { getCachedTabs, getExcludeCachedTabs, renderRouteView } = storeToRefs(tabbarStore); // 页面切换动画 -function getTransitionName(route: RouteLocationNormalizedLoaded) { +function getTransitionName(_route: RouteLocationNormalizedLoaded) { // 如果偏好设置未设置,则不使用动画 const { tabbar, transition } = preferences; const transitionName = transition.name; @@ -38,9 +38,10 @@ function getTransitionName(route: RouteLocationNormalizedLoaded) { // return; // } // 已经打开且已经加载过的页面不使用动画 - const inTabs = getCachedTabs.value.includes(route.name as string); + // const inTabs = getCachedTabs.value.includes(route.name as string); - return inTabs && route.meta.loaded ? undefined : transitionName; + // return inTabs && route.meta.loaded ? undefined : transitionName; + return transitionName; } diff --git a/packages/effects/layouts/src/basic/tabbar/index.ts b/packages/effects/layouts/src/basic/tabbar/index.ts index 5e8aa80df..5cc247900 100644 --- a/packages/effects/layouts/src/basic/tabbar/index.ts +++ b/packages/effects/layouts/src/basic/tabbar/index.ts @@ -1,2 +1,2 @@ export { default as LayoutTabbar } from './tabbar.vue'; -export * from './use-tabs'; +export * from './use-tabbar'; diff --git a/packages/effects/layouts/src/basic/tabbar/tabbar.vue b/packages/effects/layouts/src/basic/tabbar/tabbar.vue index 94eb346bc..0eee3f5bb 100644 --- a/packages/effects/layouts/src/basic/tabbar/tabbar.vue +++ b/packages/effects/layouts/src/basic/tabbar/tabbar.vue @@ -2,11 +2,12 @@ import { computed } from 'vue'; import { useRoute } from 'vue-router'; +import { useContentMaximize, useTabs } from '@vben-core/hooks'; import { preferences } from '@vben-core/preferences'; import { useCoreTabbarStore } from '@vben-core/stores'; import { TabsToolMore, TabsToolScreen, TabsView } from '@vben-core/tabs-ui'; -import { updateContentScreen, useTabs } from './use-tabs'; +import { useTabbar } from './use-tabbar'; defineOptions({ name: 'LayoutTabbar', @@ -14,9 +15,10 @@ defineOptions({ defineProps<{ showIcon?: boolean; theme?: string }>(); -const coreTabbarStore = useCoreTabbarStore(); - const route = useRoute(); +const coreTabbarStore = useCoreTabbarStore(); +const { toggleMaximize } = useContentMaximize(); +const { unpinTab } = useTabs(); const { createContextMenus, @@ -24,8 +26,7 @@ const { currentTabs, handleClick, handleClose, - handleUnpinTab, -} = useTabs(); +} = useTabbar(); const menus = computed(() => { return createContextMenus(route); @@ -48,15 +49,15 @@ if (!preferences.tabbar.persist) { :tabs="currentTabs" @close="handleClose" @sort-tabs="coreTabbarStore.sortTabs" - @unpin="handleUnpinTab" + @unpin="unpinTab" @update:active="handleClick" />
diff --git a/packages/effects/layouts/src/basic/tabbar/use-tabs.ts b/packages/effects/layouts/src/basic/tabbar/use-tabbar.ts similarity index 63% rename from packages/effects/layouts/src/basic/tabbar/use-tabs.ts rename to packages/effects/layouts/src/basic/tabbar/use-tabbar.ts index ab60dafae..6fba77364 100644 --- a/packages/effects/layouts/src/basic/tabbar/use-tabs.ts +++ b/packages/effects/layouts/src/basic/tabbar/use-tabbar.ts @@ -8,6 +8,7 @@ import type { import { computed, ref, watch } from 'vue'; import { useRoute, useRouter } from 'vue-router'; +import { useContentMaximize, useTabs } from '@vben-core/hooks'; import { ArrowLeftToLine, ArrowRightLeft, @@ -22,33 +23,32 @@ import { X, } from '@vben-core/icons'; import { $t, useI18n } from '@vben-core/locales'; -import { updatePreferences, usePreferences } from '@vben-core/preferences'; import { storeToRefs, useCoreAccessStore, useCoreTabbarStore, } from '@vben-core/stores'; -import { filterTree, openWindow } from '@vben-core/toolkit'; +import { filterTree } from '@vben-core/toolkit'; -function updateContentScreen(screen: boolean) { - updatePreferences({ - header: { - hidden: !!screen, - }, - sidebar: { - hidden: !!screen, - }, - }); -} - -function useTabs() { +export function useTabbar() { const router = useRouter(); const route = useRoute(); const accessStore = useCoreAccessStore(); - const { contentIsMaximize } = usePreferences(); const coreTabbarStore = useCoreTabbarStore(); const { accessMenus } = storeToRefs(accessStore); - + const { contentIsMaximize, toggleMaximize } = useContentMaximize(); + const { + closeAllTabs, + closeCurrentTab, + closeLeftTabs, + closeOtherTabs, + closeRightTabs, + closeTabByKey, + getTabDisableState, + openTabInNewWindow, + refreshTab, + toggleTabPin, + } = useTabs(); const currentActive = computed(() => { return route.path; }); @@ -76,7 +76,7 @@ function useTabs() { // 关闭tab const handleClose = async (key: string) => { - await coreTabbarStore.closeTabByKey(key, router); + await closeTabByKey(key); }; function wrapperTabLocale(tab: RouteLocationNormalizedGeneric) { @@ -106,30 +106,22 @@ function useTabs() { ); const createContextMenus = (tab: TabDefinition) => { - const tabs = coreTabbarStore.getTabs; - const affixTabs = coreTabbarStore.affixTabs; - const index = tabs.findIndex((item) => item.path === tab.path); - - const disabled = tabs.length <= 1; - - const { meta } = tab; - const affixTab = meta?.affixTab ?? false; - const isCurrentTab = route.path === tab.path; - - // 当前处于最左侧或者减去固定标签页的数量等于0 - const closeLeftDisabled = - index === 0 || index - affixTabs.length <= 0 || !isCurrentTab; - - const closeRightDisabled = !isCurrentTab || index === tabs.length - 1; + const { + disabledCloseAll, + disabledCloseCurrent, + disabledCloseLeft, + disabledCloseOther, + disabledCloseRight, + disabledRefresh, + } = getTabDisableState(tab); - const closeOtherDisabled = - disabled || !isCurrentTab || tabs.length - affixTabs.length <= 1; + const affixTab = tab?.meta?.affixTab ?? false; const menus: IContextMenuItem[] = [ { - disabled: !!affixTab || disabled, + disabled: disabledCloseCurrent, handler: async () => { - await coreTabbarStore.closeTab(tab, router); + await closeCurrentTab(tab); }, icon: X, key: 'close', @@ -137,9 +129,7 @@ function useTabs() { }, { handler: async () => { - await (affixTab - ? coreTabbarStore.unpinTab(tab) - : coreTabbarStore.pinTab(tab)); + await toggleTabPin(tab); }, icon: affixTab ? MdiPinOff : MdiPin, key: 'affix', @@ -152,7 +142,7 @@ function useTabs() { if (!contentIsMaximize.value) { await router.push(tab.fullPath); } - updateContentScreen(!contentIsMaximize.value); + toggleMaximize(); }, icon: contentIsMaximize.value ? Minimize2 : Fullscreen, key: contentIsMaximize.value ? 'restore-maximize' : 'maximize', @@ -161,22 +151,15 @@ function useTabs() { : $t('preferences.tabbar.contextMenu.maximize'), }, { - disabled: !isCurrentTab, - handler: async () => { - await coreTabbarStore.refresh(router); - }, + disabled: disabledRefresh, + handler: refreshTab, icon: RotateCw, key: 'reload', text: $t('preferences.tabbar.contextMenu.reload'), }, - { handler: async () => { - const { hash, origin } = location; - const path = tab.fullPath; - const fullPath = path.startsWith('/') ? path : `/${path}`; - const url = `${origin}${hash ? '/#' : ''}${fullPath}`; - openWindow(url, { target: '_blank' }); + await openTabInNewWindow(tab); }, icon: ExternalLink, key: 'open-in-new-window', @@ -185,18 +168,18 @@ function useTabs() { }, { - disabled: closeLeftDisabled, + disabled: disabledCloseLeft, handler: async () => { - await coreTabbarStore.closeLeftTabs(tab); + await closeLeftTabs(tab); }, icon: ArrowLeftToLine, key: 'close-left', text: $t('preferences.tabbar.contextMenu.closeLeft'), }, { - disabled: closeRightDisabled, + disabled: disabledCloseRight, handler: async () => { - await coreTabbarStore.closeRightTabs(tab); + await closeRightTabs(tab); }, icon: ArrowRightToLine, key: 'close-right', @@ -204,19 +187,17 @@ function useTabs() { text: $t('preferences.tabbar.contextMenu.closeRight'), }, { - disabled: closeOtherDisabled, + disabled: disabledCloseOther, handler: async () => { - await coreTabbarStore.closeOtherTabs(tab); + await closeOtherTabs(tab); }, icon: FoldHorizontal, key: 'close-other', text: $t('preferences.tabbar.contextMenu.closeOther'), }, { - disabled, - handler: async () => { - await coreTabbarStore.closeAllTabs(router); - }, + disabled: disabledCloseAll, + handler: closeAllTabs, icon: ArrowRightLeft, key: 'close-all', text: $t('preferences.tabbar.contextMenu.closeAll'), @@ -225,21 +206,11 @@ function useTabs() { return menus; }; - /** - * 取消固定标签页 - */ - const handleUnpinTab = async (tab: TabDefinition) => { - await coreTabbarStore.unpinTab(tab); - }; - return { createContextMenus, currentActive, currentTabs, handleClick, handleClose, - handleUnpinTab, }; } - -export { updateContentScreen, useTabs }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 09006fc27..d65f4de36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,88 +99,9 @@ importers: apps/backend-mock: dependencies: - '@nestjs/common': - specifier: ^10.3.10 - version: 10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/config': - specifier: ^3.2.3 - version: 3.2.3(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1) - '@nestjs/core': - specifier: ^10.3.10 - version: 10.3.10(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/jwt': - specifier: ^10.2.0 - version: 10.2.0(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)) - '@nestjs/passport': - specifier: ^10.0.3 - version: 10.0.3(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0) - '@nestjs/platform-express': - specifier: ^10.3.10 - version: 10.3.10(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10) - '@types/js-yaml': - specifier: ^4.0.9 - version: 4.0.9 - bcryptjs: - specifier: ^2.4.3 - version: 2.4.3 - class-transformer: - specifier: ^0.5.1 - version: 0.5.1 - class-validator: - specifier: ^0.14.1 - version: 0.14.1 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - joi: - specifier: ^17.13.3 - version: 17.13.3 - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - mockjs: - specifier: ^1.1.0 - version: 1.1.0 - passport: - specifier: ^0.7.0 - version: 0.7.0 - passport-jwt: - specifier: ^4.0.1 - version: 4.0.1 - passport-local: - specifier: ^1.0.0 - version: 1.0.0 - reflect-metadata: - specifier: ^0.2.2 - version: 0.2.2 - rxjs: - specifier: ^7.8.1 - version: 7.8.1 - devDependencies: - '@nestjs/cli': - specifier: ^10.4.2 - version: 10.4.2 - '@nestjs/schematics': - specifier: ^10.1.2 - version: 10.1.2(chokidar@3.6.0)(typescript@5.5.3) - '@types/express': - specifier: ^4.17.21 - version: 4.17.21 - '@types/mockjs': - specifier: ^1.0.10 - version: 1.0.10 - '@types/node': - specifier: ^20.14.11 - version: 20.14.11 - nodemon: - specifier: ^3.1.4 - version: 3.1.4 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.11)(typescript@5.5.3) - typescript: - specifier: ^5.5.3 - version: 5.5.3 + nitropack: + specifier: latest + version: 2.9.7(encoding@0.1.13) apps/web-antd: dependencies: @@ -263,11 +184,11 @@ importers: specifier: ^4.0.0 version: 4.0.0(@commitlint/lint@19.2.2) cz-git: - specifier: ^1.9.3 - version: 1.9.3 + specifier: ^1.9.4 + version: 1.9.4 czg: - specifier: ^1.9.3 - version: 1.9.3 + specifier: ^1.9.4 + version: 1.9.4 internal/lint-configs/eslint-config: dependencies: @@ -511,6 +432,9 @@ importers: html-minifier-terser: specifier: ^7.2.0 version: 7.2.0 + nitropack: + specifier: ^2.9.7 + version: 2.9.7(encoding@0.1.13) resolve.exports: specifier: ^2.0.2 version: 2.0.2 @@ -636,6 +560,12 @@ importers: '@vben-core/constants': specifier: workspace:* version: link:../shared/constants + '@vben-core/preferences': + specifier: workspace:* + version: link:../forward/preferences + '@vben-core/stores': + specifier: workspace:* + version: link:../forward/stores '@vben-core/toolkit': specifier: workspace:* version: link:../shared/toolkit @@ -651,6 +581,9 @@ importers: vue: specifier: ^3.4.32 version: 3.4.32(typescript@5.5.3) + vue-router: + specifier: ^4.4.0 + version: 4.4.0(vue@3.4.32(typescript@5.5.3)) devDependencies: '@types/sortablejs': specifier: ^1.15.8 @@ -1088,24 +1021,6 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/core@17.3.8': - resolution: {integrity: sha512-Q8q0voCGudbdCgJ7lXdnyaxKHbNQBARH68zPQV72WT8NWy+Gw/tys870i6L58NWbBaCJEUcIj/kb6KoakSRu+Q==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^3.5.2 - peerDependenciesMeta: - chokidar: - optional: true - - '@angular-devkit/schematics-cli@17.3.8': - resolution: {integrity: sha512-TjmiwWJarX7oqvNiRAroQ5/LeKUatxBOCNEuKXO/PV8e7pn/Hr/BqfFm+UcYrQoFdZplmtNAfqmbqgVziKvCpA==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - hasBin: true - - '@angular-devkit/schematics@17.3.8': - resolution: {integrity: sha512-QRVEYpIfgkprNHc916JlPuNbLzOgrm9DZalHasnLUz4P6g7pR21olb8YCyM2OTJjombNhya9ZpckcADU5Qyvlg==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@ant-design/colors@6.0.0': resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==} @@ -1905,9 +1820,9 @@ packages: '@changesets/write@0.3.1': resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} + '@cloudflare/kv-asset-handler@0.3.4': + resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} + engines: {node: '>=16.13'} '@commitlint/cli@19.3.0': resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} @@ -2467,6 +2382,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -2485,6 +2406,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -2503,6 +2430,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -2521,6 +2454,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -2539,6 +2478,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -2557,6 +2502,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -2575,6 +2526,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -2593,6 +2550,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -2611,6 +2574,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -2629,6 +2598,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -2647,6 +2622,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -2665,6 +2646,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -2683,6 +2670,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -2701,6 +2694,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -2719,6 +2718,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -2737,6 +2742,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} @@ -2755,6 +2766,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -2773,6 +2790,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -2797,6 +2820,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -2815,6 +2844,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -2833,6 +2868,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -2851,6 +2892,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -2869,6 +2916,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -2907,6 +2960,10 @@ packages: resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + '@floating-ui/core@1.6.4': resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} @@ -2922,12 +2979,6 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -3000,6 +3051,9 @@ packages: vue-i18n-bridge: optional: true + '@ioredis/commands@1.2.0': + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3034,19 +3088,11 @@ packages: '@jspm/import-map@1.1.0': resolution: {integrity: sha512-vmk583YnMi4fmqeXbWIBiyzFu+vqVZ5VCoaa6H4xeSQy5E6JAWtmcq72OAMFTeSTqw7xxHQIJFq2OlHKdUWitQ==} - '@ljharb/through@2.3.13': - resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} - engines: {node: '>= 0.4'} - '@ls-lint/ls-lint@2.2.3': resolution: {integrity: sha512-ekM12jNm/7O2I/hsRv9HvYkRdfrHpiV1epVuI2NP+eTIcEgdIdKkKCs9KgQydu/8R5YXTov9aHdOgplmCHLupw==} os: [darwin, linux, win32] hasBin: true - '@lukeed/csprng@1.1.0': - resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} - engines: {node: '>=8'} - '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -3065,6 +3111,10 @@ packages: resolution: {integrity: sha512-lpqC/HVb/fWljyphkEdifkr7vSfxHURnwLwKbJma7KvAkX2dl6xTsKLxwt4EpfxxuHhX7gaFOCCcs9Gqj//lEA==} engines: {node: '>=14.18.0'} + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + '@microsoft/api-extractor-model@7.28.13': resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} @@ -3078,76 +3128,17 @@ packages: '@microsoft/tsdoc@0.14.2': resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - '@nestjs/cli@10.4.2': - resolution: {integrity: sha512-fQexIfLHfp6GUgX+CO4fOg+AEwV5ox/LHotQhyZi9wXUQDyIqS0NTTbumr//62EcX35qV4nU0359nYnuEdzG+A==} - engines: {node: '>= 16.14'} - hasBin: true - peerDependencies: - '@swc/cli': ^0.1.62 || ^0.3.0 || ^0.4.0 - '@swc/core': ^1.3.62 - peerDependenciesMeta: - '@swc/cli': - optional: true - '@swc/core': - optional: true - - '@nestjs/common@10.3.10': - resolution: {integrity: sha512-H8k0jZtxk1IdtErGDmxFRy0PfcOAUg41Prrqpx76DQusGGJjsaovs1zjXVD1rZWaVYchfT1uczJ6L4Kio10VNg==} - peerDependencies: - class-transformer: '*' - class-validator: '*' - reflect-metadata: ^0.1.12 || ^0.2.0 - rxjs: ^7.1.0 - peerDependenciesMeta: - class-transformer: - optional: true - class-validator: - optional: true - - '@nestjs/config@3.2.3': - resolution: {integrity: sha512-p6yv/CvoBewJ72mBq4NXgOAi2rSQNWx3a+IMJLVKS2uiwFCOQQuiIatGwq6MRjXV3Jr+B41iUO8FIf4xBrZ4/w==} - peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - rxjs: ^7.1.0 - - '@nestjs/core@10.3.10': - resolution: {integrity: sha512-ZbQ4jovQyzHtCGCrzK5NdtW1SYO2fHSsgSY1+/9WdruYCUra+JDkWEXgZ4M3Hv480Dl3OXehAmY1wCOojeMyMQ==} - 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 || ^0.2.0 - rxjs: ^7.1.0 - peerDependenciesMeta: - '@nestjs/microservices': - optional: true - '@nestjs/platform-express': - optional: true - '@nestjs/websockets': - optional: true - - '@nestjs/jwt@10.2.0': - resolution: {integrity: sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==} - peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - - '@nestjs/passport@10.0.3': - 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 + '@netlify/functions@2.8.1': + resolution: {integrity: sha512-+6wtYdoz0yE06dSa9XkP47tw5zm6g13QMeCwM3MmHx1vn8hzwFa51JtmfraprdkL7amvb7gaNM+OOhQU1h6T8A==} + engines: {node: '>=14.0.0'} - '@nestjs/platform-express@10.3.10': - resolution: {integrity: sha512-wK2ow3CZI2KFqWeEpPmoR300OB6BcBLxARV1EiClJLCj4S1mZsoCmS0YWgpk3j1j6mo0SI8vNLi/cC2iZPEPQA==} - peerDependencies: - '@nestjs/common': ^10.0.0 - '@nestjs/core': ^10.0.0 + '@netlify/node-cookies@0.1.0': + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} - '@nestjs/schematics@10.1.2': - resolution: {integrity: sha512-S0bMtZM5U4mAiqkhRyZkXgjmOHBS5P/lp/vEydgMR4F7csOShc3jFeKVs1Eghd9xCFezGKy3SHy7hFT6dpPhWQ==} - peerDependencies: - typescript: '>=4.8.2' + '@netlify/serverless-functions-api@1.19.1': + resolution: {integrity: sha512-2KYkyluThg1AKfd0JWI7FzpS4A/fzVVGYIf6AM4ydWyNj8eI/86GQVLeRgDoH7CNOxt243R5tutWlmHpVq0/Ew==} + engines: {node: '>=18.0.0'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -3169,14 +3160,91 @@ packages: engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs - '@nuxtjs/opencollective@0.3.2': - resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true - '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@parcel/watcher-android-arm64@2.4.1': + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.4.1': + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.4.1': + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.4.1': + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.4.1': + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.4.1': + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.4.1': + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.4.1': + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-wasm@2.4.1': + resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.4.1': + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.4.1': + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.4.1': + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.4.1': + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3234,6 +3302,15 @@ packages: rollup: optional: true + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-json@6.1.0': resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} @@ -3402,18 +3479,13 @@ packages: '@shikijs/transformers@1.10.3': resolution: {integrity: sha512-MNjsyye2WHVdxfZUSr5frS97sLGe6G1T+1P41QjyBFJehZphMcr4aBlRLmq6OSPBslYe9byQPVvt/LJCOfxw8Q==} - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@simonwep/pickr@1.8.2': resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@stylistic/stylelint-plugin@2.1.2': resolution: {integrity: sha512-JsSqu0Y3vsX+PBl+DwULxC0cIv9C1yIcq1MXkx7pBOGtTqU26a75I8MPYMiEYvrsXgsKLi65xVgy1iLVSZquJA==} engines: {node: ^18.12 || >=20.9} @@ -3475,18 +3547,9 @@ packages: '@types/bintrees@1.0.6': resolution: {integrity: sha512-pZWT4Bz+tWwxlDspSjdoIza4PE5lbGI4Xvs3FZV/2v5m5SDA8LwNpU8AXxlndmARO7OaQ1Vf3zFenOsNMzaRkQ==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} @@ -3496,12 +3559,6 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} @@ -3511,11 +3568,8 @@ packages: '@types/html-minifier-terser@7.0.2': resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/http-proxy@1.17.14': + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} '@types/jsdom@21.1.7': resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} @@ -3526,9 +3580,6 @@ packages: '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - '@types/jsonwebtoken@9.0.5': - resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} - '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -3544,18 +3595,12 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/mockjs@1.0.10': - resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==} - '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -3583,24 +3628,12 @@ packages: '@types/qrcode@1.5.5': resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/sortablejs@1.15.8': resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} @@ -3613,9 +3646,6 @@ packages: '@types/unist@3.0.2': resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - '@types/validator@13.12.0': - resolution: {integrity: sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag==} - '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -3683,6 +3713,11 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@vercel/nft@0.26.5': + resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} + engines: {node: '>=16'} + hasBin: true + '@vitejs/plugin-vue-jsx@4.0.0': resolution: {integrity: sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3879,73 +3914,25 @@ packages: '@vueuse/shared@10.11.0': resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -3977,25 +3964,9 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -4009,10 +3980,6 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-escapes@6.2.1: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} @@ -4050,13 +4017,26 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - append-field@1.0.0: - resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -4081,9 +4061,6 @@ packages: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} engines: {node: '>=8'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -4113,6 +4090,9 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} @@ -4145,6 +4125,9 @@ packages: axios@1.7.2: resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + babel-plugin-polyfill-corejs2@0.4.11: resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: @@ -4166,12 +4149,12 @@ packages: balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - bcryptjs@2.4.3: - resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} - better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -4180,19 +4163,15 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bintrees@1.0.2: resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==} birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -4215,14 +4194,15 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -4232,13 +4212,13 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + c12@1.11.1: + resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} @@ -4326,10 +4306,6 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -4345,12 +4321,6 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - class-transformer@0.5.1: - resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} - - class-validator@0.14.1: - resolution: {integrity: sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==} - class-variance-authority@0.7.0: resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} @@ -4374,33 +4344,17 @@ packages: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} - engines: {node: 10.* || >= 12.*} - cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -4412,14 +4366,14 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -4433,6 +4387,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -4470,10 +4428,6 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-json@4.2.3: - resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} - engines: {node: '>= 6'} - comment-json@4.2.4: resolution: {integrity: sha512-E5AjpSW+O+N5T2GsOQMHLLsJvrYw6G/AFt9GvU6NguEAfzKShh7hRiLtVo6S9KbRpFMGqE5ojo0/hE+sdteWvQ==} engines: {node: '>= 6'} @@ -4498,6 +4452,10 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + compute-scroll-into-view@1.0.20: resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} @@ -4507,10 +4465,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} @@ -4532,13 +4486,8 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} @@ -4556,12 +4505,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + cookie-es@1.2.1: + resolution: {integrity: sha512-ilTPDuxhZX44BSzzRB58gvSY2UevZKQM9fjisn7Z+NJ92CtSU6kO1+22ZN/agbEJANFjK85EiJJbi/gQv18OXA==} copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} @@ -4576,10 +4521,6 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - cosmiconfig-typescript-loader@5.0.0: resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} @@ -4592,15 +4533,6 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -4610,9 +4542,22 @@ packages: typescript: optional: true + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + croner@8.1.0: + resolution: {integrity: sha512-sz990XOUPR8dG/r5BRKMBd15MYDDUu8oeSaxFD5DqvNgHSZw8Psd1s689/IGET7ezxRMiNlCIyGeY1Gvxp/MLg==} + engines: {node: '>=18.0'} + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -4625,6 +4570,14 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + crossws@0.2.4: + resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} + peerDependencies: + uWebSockets.js: '*' + peerDependenciesMeta: + uWebSockets.js: + optional: true + crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -4755,12 +4708,12 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - cz-git@1.9.3: - resolution: {integrity: sha512-v7+vYOparImLLo6J5tAsi/cz+EAK7FI/TDnemi11xgEax4k+ZVqxsmkiEc68n+MJLp1l5THhB2KTDhjpW+ellg==} + cz-git@1.9.4: + resolution: {integrity: sha512-VntWcIEFfW8+7RgwYaRn1r10NhUkl8/8ZdJQRupEdqE7QXBCSjNP8hKSk9zhSLzYAsdXfGEAwiAYJM1T2Qsh8w==} engines: {node: '>=v12.20.0'} - czg@1.9.3: - resolution: {integrity: sha512-2RDFcHpVrG0eWGPodkcDQ9QdaF8xVf54PMP0GdXyiz3sCKvxsHvQ/AEvz9TPndZONCajHgU7uN64MQdrHLDSYA==} + czg@1.9.4: + resolution: {integrity: sha512-x9V/FXA3XUmK6PMvP2WC3WPTA4xAUCcjFcL6HxJSLUAn4gKshMHWLkIfWSCsEqmenn5IIX0/L7NuBJ7/luDqCA==} engines: {node: '>=v12.20.0'} hasBin: true @@ -4794,6 +4747,20 @@ packages: dayjs@1.11.12: resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} + db0@0.1.4: + resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} + peerDependencies: + '@libsql/client': ^0.5.2 + better-sqlite3: ^9.4.3 + drizzle-orm: ^0.29.4 + peerDependenciesMeta: + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -4852,9 +4819,6 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -4878,6 +4842,13 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + depcheck@1.4.7: resolution: {integrity: sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==} engines: {node: '>=10'} @@ -4890,6 +4861,9 @@ packages: deps-regex@0.2.0: resolution: {integrity: sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -4902,6 +4876,15 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -4963,9 +4946,9 @@ packages: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} + dot-prop@8.0.2: + resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} + engines: {node: '>=16'} dotenv-expand@8.0.3: resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} @@ -4989,9 +4972,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - echarts@5.5.1: resolution: {integrity: sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==} @@ -5094,6 +5074,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -5123,6 +5108,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -5296,10 +5285,6 @@ packages: resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} engines: {node: '>=4.0.0'} - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5338,10 +5323,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -5366,6 +5347,10 @@ packages: event-stream@3.3.4: resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -5381,10 +5366,6 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -5402,6 +5383,9 @@ packages: resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} engines: {node: '>=6.0.0'} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -5412,9 +5396,6 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-string-compare@3.0.0: resolution: {integrity: sha512-PY66/8HelapGo5nqMN17ZTKqJj1nppuS1OoC9Y0aI2jsUDlZDEYhMODTpb68wVCq+xMbaEbPGXRd7qutHzkRXA==} engines: {node: ^14.13.1 || >=16.0.0} @@ -5433,10 +5414,6 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5449,6 +5426,9 @@ packages: resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} engines: {node: '>=18'} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -5456,10 +5436,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -5517,13 +5493,6 @@ packages: resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} - fork-ts-checker-webpack-plugin@9.0.2: - resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} - peerDependencies: - typescript: '>3.6.0' - webpack: ^5.11.0 - form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -5532,10 +5501,6 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -5570,9 +5535,6 @@ packages: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -5595,6 +5557,11 @@ packages: resolution: {integrity: sha512-O07q+Lknrom5RUX/u53tjo2KTTLUnL0K703JbqMYb19ORijfJNvijzFqqYXEjdk25T9R14S6t6wHD8fCWXCM0g==} hasBin: true + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + gensequence@7.0.0: resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} engines: {node: '>=18'} @@ -5621,6 +5588,9 @@ packages: get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} @@ -5636,6 +5606,10 @@ packages: get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} @@ -5649,14 +5623,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -5723,6 +5689,10 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + globjoin@0.1.4: resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} @@ -5742,6 +5712,13 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + h3@1.12.0: + resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} + has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -5772,6 +5749,9 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -5826,6 +5806,10 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -5834,6 +5818,9 @@ packages: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} + httpxy@0.1.5: + resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} + human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -5863,9 +5850,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - ignore-walk@5.0.1: resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -5913,25 +5897,20 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - - inquirer@9.2.15: - resolution: {integrity: sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==} - engines: {node: '>=18'} - internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} + ioredis@5.4.1: + resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} + engines: {node: '>=12.22.0'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} @@ -6023,10 +6002,6 @@ packages: resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} engines: {node: '>=18'} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} @@ -6122,10 +6097,6 @@ packages: is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -6145,6 +6116,10 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -6154,10 +6129,6 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - iterare@1.2.1: - resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} - engines: {node: '>=6'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -6170,10 +6141,6 @@ packages: engines: {node: '>=10'} hasBin: true - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true @@ -6181,9 +6148,6 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - js-beautify@1.15.1: resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} engines: {node: '>=14'} @@ -6264,12 +6228,6 @@ packages: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -6284,16 +6242,6 @@ packages: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - jsonwebtoken@9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} - - jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - - jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -6301,6 +6249,13 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.1.0: + resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + known-css-properties@0.34.0: resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} @@ -6315,6 +6270,10 @@ packages: resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} engines: {node: '>=18'} + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -6323,9 +6282,6 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libphonenumber-js@1.11.4: - resolution: {integrity: sha512-F/R50HQuWWYcmU/esP5jrH5LiWYaN7DpN0a/99U8+mnGGtnx8kmRE+649dQh3v+CowXXZc8vpkf5AmYkO0AQ7Q==} - lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -6342,6 +6298,10 @@ packages: engines: {node: '>=18.12.0'} hasBin: true + listhen@1.7.2: + resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} + hasBin: true + listr2@8.2.3: resolution: {integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==} engines: {node: '>=18.0.0'} @@ -6350,9 +6310,9 @@ packages: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -6381,30 +6341,21 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} @@ -6417,9 +6368,6 @@ packages: lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} @@ -6441,10 +6389,6 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - log-update@6.0.0: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} engines: {node: '>=18'} @@ -6487,9 +6431,9 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -6513,14 +6457,6 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -6529,9 +6465,6 @@ packages: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -6539,10 +6472,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} @@ -6560,6 +6489,16 @@ packages: engines: {node: '>=4'} hasBin: true + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.0.4: + resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -6647,10 +6586,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -6674,10 +6609,6 @@ packages: mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - mockjs@1.1.0: - resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} - hasBin: true - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -6701,21 +6632,10 @@ packages: muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - multer@1.4.4-lts.1: - resolution: {integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==} - engines: {node: '>= 6.0.0'} - multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -6738,18 +6658,21 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + nitropack@2.9.7: + resolution: {integrity: sha512-aKXvtNrWkOCMsQbsk4A0qQdBjrJ1ZcvwlTQevI/LAgLWLYc5L7Q/YiYxGLal4ITyNSlzir1Cm1D2ZxnYhmpMEw==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} node-cleanup@2.1.2: resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} @@ -6758,8 +6681,8 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -6774,15 +6697,23 @@ packages: resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + node-html-parser@5.4.2: resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} node-releases@2.0.17: resolution: {integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==} - nodemon@3.1.4: - resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==} - engines: {node: '>=10'} + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} hasBin: true nopt@7.2.1: @@ -6818,6 +6749,10 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} @@ -6827,6 +6762,11 @@ packages: nwsapi@2.2.12: resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + nypm@0.3.9: + resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -6847,6 +6787,12 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} + ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + + ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -6870,14 +6816,14 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + openapi-typescript@6.7.6: + resolution: {integrity: sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==} + hasBin: true + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -6968,21 +6914,6 @@ packages: pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - passport-jwt@4.0.1: - resolution: {integrity: sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==} - - passport-local@1.0.0: - resolution: {integrity: sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow==} - engines: {node: '>= 0.4.0'} - - passport-strategy@1.0.0: - resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} - engines: {node: '>= 0.4.0'} - - passport@0.7.0: - resolution: {integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==} - engines: {node: '>= 0.4.0'} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -7017,16 +6948,14 @@ packages: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-to-regexp@3.2.0: - resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + pathe@0.2.0: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} @@ -7040,9 +6969,6 @@ packages: pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - pause@0.0.1: - resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} - perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} @@ -7053,10 +6979,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.1: - resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} - engines: {node: '>=12'} - pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -7611,6 +7533,10 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -7626,10 +7552,6 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -7644,9 +7566,6 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - publint@0.2.9: resolution: {integrity: sha512-nITKS1NSwD68PQlts0ntryhxrWObep6P0CCycwi1lgXI+K7uKyacMYRRCQi7hTae8imkI3FCi0FlgnwLxjM8yA==} engines: {node: '>=16'} @@ -7665,21 +7584,23 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + radix-vue@1.9.1: resolution: {integrity: sha512-fObA+9l2ixNWBXRMj5mBZfmVv2znqIUph+0uo7QA/s7pDYSST2vGvxCbrg/xQGxWRwaQ8ejgo1wg2MzhHcbjLw==} peerDependencies: vue: ^3.4.32 + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -7687,9 +7608,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} @@ -7717,17 +7637,29 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + refa@0.12.1: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -7827,10 +7759,6 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7902,20 +7830,9 @@ packages: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -7946,10 +7863,6 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - scroll-into-view-if-needed@2.2.31: resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} @@ -7995,6 +7908,9 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -8053,10 +7969,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} - sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -8069,6 +7981,10 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slashes@3.0.12: resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} @@ -8167,6 +8083,9 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -8177,9 +8096,8 @@ packages: stream-combiner@0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} + streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -8254,6 +8172,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} @@ -8351,6 +8272,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + supports-hyperlinks@3.0.0: resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} engines: {node: '>=14.18'} @@ -8370,10 +8295,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - symbol-observable@4.0.0: - resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} - engines: {node: '>=0.10'} - symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -8385,6 +8306,10 @@ packages: resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -8409,6 +8334,9 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -8425,27 +8353,14 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser@5.31.3: resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} engines: {node: '>=10'} hasBin: true + text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -8505,10 +8420,6 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} - hasBin: true - tough-cookie@4.1.4: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} @@ -8523,10 +8434,6 @@ packages: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -8550,14 +8457,6 @@ packages: '@swc/wasm': optional: true - tsconfig-paths-webpack-plugin@4.1.0: - resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} - engines: {node: '>=10.13.0'} - - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} - tslib@2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} @@ -8610,10 +8509,6 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -8630,9 +8525,9 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} @@ -8653,14 +8548,6 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.4.2: resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} @@ -8674,10 +8561,6 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - uid@2.0.2: - resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} - engines: {node: '>=8'} - unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -8690,12 +8573,22 @@ packages: typescript: optional: true - undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.3.1: + resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -8716,6 +8609,9 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unimport@3.9.0: + resolution: {integrity: sha512-H2ftTISja1BonUVdOKRos6HC6dqYDR40dQTZY3zIDJ/5/z4ihncuL0LqLvtxYqUDMib41eAtunQUhXIWTCZ8rA==} + unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -8742,18 +8638,65 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unplugin@1.11.0: resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} engines: {node: '>=14.0.0'} + unstorage@1.10.2: + resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} + peerDependencies: + '@azure/app-configuration': ^1.5.0 + '@azure/cosmos': ^4.0.0 + '@azure/data-tables': ^13.2.2 + '@azure/identity': ^4.0.1 + '@azure/keyvault-secrets': ^4.8.0 + '@azure/storage-blob': ^12.17.0 + '@capacitor/preferences': ^5.0.7 + '@netlify/blobs': ^6.5.0 || ^7.0.0 + '@planetscale/database': ^1.16.0 + '@upstash/redis': ^1.28.4 + '@vercel/kv': ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.3.2 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/kv': + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + untyped@1.4.2: resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} hasBin: true + unwasm@0.3.9: + resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} + upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -8768,19 +8711,21 @@ packages: resolution: {integrity: sha512-8SV3rIqVY6EFC1WxH6L0j55s0MO79MFBS1pivmInRJg3pCEDgWHBj1Q6XByTtCLOZIFA0f6zoG9ZWf2Ks9lvTA==} engines: {node: '>=18'} + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -8791,10 +8736,6 @@ packages: resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} engines: {node: '>= 0.10'} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - vite-hot-client@0.2.3: resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} peerDependencies: @@ -9011,13 +8952,6 @@ packages: warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -9032,10 +8966,6 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-node-externals@3.0.0: - resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} - engines: {node: '>=6'} - webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -9043,16 +8973,6 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.92.1: - resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpod@0.0.2: resolution: {integrity: sha512-cSwwQIeg8v4i3p4ajHhwgR7N6VyxAf+KYSSsY6Pd3aETE+xEU4vbitz7qQkB0I321xnhDdgtxuiSfk5r/FVtjg==} hasBin: true @@ -9108,6 +9028,9 @@ packages: engines: {node: '>=8'} hasBin: true + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -9218,10 +9141,6 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -9292,6 +9211,10 @@ packages: engines: {node: '>=8.0.0'} hasBin: true + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + zrender@5.6.0: resolution: {integrity: sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==} @@ -9413,38 +9336,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@angular-devkit/core@17.3.8(chokidar@3.6.0)': - dependencies: - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - jsonc-parser: 3.2.1 - picomatch: 4.0.1 - rxjs: 7.8.1 - source-map: 0.7.4 - optionalDependencies: - chokidar: 3.6.0 - - '@angular-devkit/schematics-cli@17.3.8(chokidar@3.6.0)': - dependencies: - '@angular-devkit/core': 17.3.8(chokidar@3.6.0) - '@angular-devkit/schematics': 17.3.8(chokidar@3.6.0) - ansi-colors: 4.1.3 - inquirer: 9.2.15 - symbol-observable: 4.0.0 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - chokidar - - '@angular-devkit/schematics@17.3.8(chokidar@3.6.0)': - dependencies: - '@angular-devkit/core': 17.3.8(chokidar@3.6.0) - jsonc-parser: 3.2.1 - magic-string: 0.30.8 - ora: 5.4.1 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - '@ant-design/colors@6.0.0': dependencies: '@ctrl/tinycolor': 4.1.0 @@ -9552,7 +9443,7 @@ snapshots: '@babel/traverse': 7.24.8 '@babel/types': 7.24.9 convert-source-map: 2.0.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9612,7 +9503,7 @@ snapshots: '@babel/core': 7.24.9 '@babel/helper-compilation-targets': 7.24.8 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -10340,7 +10231,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.8 '@babel/types': 7.24.9 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -10522,8 +10413,9 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 - '@colors/colors@1.5.0': - optional: true + '@cloudflare/kv-asset-handler@0.3.4': + dependencies: + mime: 3.0.0 '@commitlint/cli@19.3.0(@types/node@20.14.11)(typescript@5.5.3)': dependencies: @@ -10824,6 +10716,7 @@ snapshots: '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + optional: true '@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: @@ -11113,6 +11006,9 @@ snapshots: '@esbuild/aix-ppc64@0.19.12': optional: true + '@esbuild/aix-ppc64@0.20.2': + optional: true + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -11122,6 +11018,9 @@ snapshots: '@esbuild/android-arm64@0.19.12': optional: true + '@esbuild/android-arm64@0.20.2': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true @@ -11131,6 +11030,9 @@ snapshots: '@esbuild/android-arm@0.19.12': optional: true + '@esbuild/android-arm@0.20.2': + optional: true + '@esbuild/android-arm@0.21.5': optional: true @@ -11140,6 +11042,9 @@ snapshots: '@esbuild/android-x64@0.19.12': optional: true + '@esbuild/android-x64@0.20.2': + optional: true + '@esbuild/android-x64@0.21.5': optional: true @@ -11149,6 +11054,9 @@ snapshots: '@esbuild/darwin-arm64@0.19.12': optional: true + '@esbuild/darwin-arm64@0.20.2': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true @@ -11158,6 +11066,9 @@ snapshots: '@esbuild/darwin-x64@0.19.12': optional: true + '@esbuild/darwin-x64@0.20.2': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true @@ -11167,6 +11078,9 @@ snapshots: '@esbuild/freebsd-arm64@0.19.12': optional: true + '@esbuild/freebsd-arm64@0.20.2': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true @@ -11176,6 +11090,9 @@ snapshots: '@esbuild/freebsd-x64@0.19.12': optional: true + '@esbuild/freebsd-x64@0.20.2': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true @@ -11185,6 +11102,9 @@ snapshots: '@esbuild/linux-arm64@0.19.12': optional: true + '@esbuild/linux-arm64@0.20.2': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true @@ -11194,6 +11114,9 @@ snapshots: '@esbuild/linux-arm@0.19.12': optional: true + '@esbuild/linux-arm@0.20.2': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true @@ -11203,6 +11126,9 @@ snapshots: '@esbuild/linux-ia32@0.19.12': optional: true + '@esbuild/linux-ia32@0.20.2': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true @@ -11212,6 +11138,9 @@ snapshots: '@esbuild/linux-loong64@0.19.12': optional: true + '@esbuild/linux-loong64@0.20.2': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true @@ -11221,6 +11150,9 @@ snapshots: '@esbuild/linux-mips64el@0.19.12': optional: true + '@esbuild/linux-mips64el@0.20.2': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true @@ -11230,6 +11162,9 @@ snapshots: '@esbuild/linux-ppc64@0.19.12': optional: true + '@esbuild/linux-ppc64@0.20.2': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true @@ -11239,6 +11174,9 @@ snapshots: '@esbuild/linux-riscv64@0.19.12': optional: true + '@esbuild/linux-riscv64@0.20.2': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true @@ -11248,6 +11186,9 @@ snapshots: '@esbuild/linux-s390x@0.19.12': optional: true + '@esbuild/linux-s390x@0.20.2': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true @@ -11257,6 +11198,9 @@ snapshots: '@esbuild/linux-x64@0.19.12': optional: true + '@esbuild/linux-x64@0.20.2': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true @@ -11266,6 +11210,9 @@ snapshots: '@esbuild/netbsd-x64@0.19.12': optional: true + '@esbuild/netbsd-x64@0.20.2': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true @@ -11278,6 +11225,9 @@ snapshots: '@esbuild/openbsd-x64@0.19.12': optional: true + '@esbuild/openbsd-x64@0.20.2': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true @@ -11287,6 +11237,9 @@ snapshots: '@esbuild/sunos-x64@0.19.12': optional: true + '@esbuild/sunos-x64@0.20.2': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true @@ -11296,6 +11249,9 @@ snapshots: '@esbuild/win32-arm64@0.19.12': optional: true + '@esbuild/win32-arm64@0.20.2': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true @@ -11305,6 +11261,9 @@ snapshots: '@esbuild/win32-ia32@0.19.12': optional: true + '@esbuild/win32-ia32@0.20.2': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true @@ -11314,6 +11273,9 @@ snapshots: '@esbuild/win32-x64@0.19.12': optional: true + '@esbuild/win32-x64@0.20.2': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true @@ -11330,7 +11292,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -11344,7 +11306,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -11359,6 +11321,8 @@ snapshots: '@eslint/js@9.7.0': {} + '@fastify/busboy@2.1.1': {} + '@floating-ui/core@1.6.4': dependencies: '@floating-ui/utils': 0.2.4 @@ -11381,16 +11345,10 @@ snapshots: '@gar/promisify@1.1.3': {} - '@hapi/hoek@9.3.0': {} - - '@hapi/topo@5.1.0': - dependencies: - '@hapi/hoek': 9.3.0 - '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -11455,7 +11413,7 @@ snapshots: '@intlify/shared': 9.13.1 '@rollup/pluginutils': 5.1.0(rollup@4.18.1) '@vue/compiler-sfc': 3.4.31 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 fast-glob: 3.3.2 js-yaml: 4.1.0 json5: 2.2.3 @@ -11469,6 +11427,8 @@ snapshots: - rollup - supports-color + '@ioredis/commands@1.2.0': {} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -11504,6 +11464,7 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + optional: true '@jspm/generator@2.1.2': dependencies: @@ -11520,14 +11481,8 @@ snapshots: '@jspm/import-map@1.1.0': {} - '@ljharb/through@2.3.13': - dependencies: - call-bind: 1.0.7 - '@ls-lint/ls-lint@2.2.3': {} - '@lukeed/csprng@1.1.0': {} - '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.24.8 @@ -11562,6 +11517,21 @@ snapshots: jju: 1.4.0 read-yaml-file: 1.1.0 + '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0(encoding@0.1.13) + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + '@microsoft/api-extractor-model@7.28.13(@types/node@20.14.11)': dependencies: '@microsoft/tsdoc': 0.14.2 @@ -11597,111 +11567,16 @@ snapshots: '@microsoft/tsdoc@0.14.2': {} - '@nestjs/cli@10.4.2': - dependencies: - '@angular-devkit/core': 17.3.8(chokidar@3.6.0) - '@angular-devkit/schematics': 17.3.8(chokidar@3.6.0) - '@angular-devkit/schematics-cli': 17.3.8(chokidar@3.6.0) - '@nestjs/schematics': 10.1.2(chokidar@3.6.0)(typescript@5.3.3) - chalk: 4.1.2 - chokidar: 3.6.0 - cli-table3: 0.6.5 - commander: 4.1.1 - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1) - glob: 10.4.2 - inquirer: 8.2.6 - node-emoji: 1.11.0 - ora: 5.4.1 - tree-kill: 1.2.2 - tsconfig-paths: 4.2.0 - tsconfig-paths-webpack-plugin: 4.1.0 - typescript: 5.3.3 - webpack: 5.92.1 - webpack-node-externals: 3.0.0 - transitivePeerDependencies: - - esbuild - - uglify-js - - webpack-cli - - '@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1)': - dependencies: - iterare: 1.2.1 - reflect-metadata: 0.2.2 - rxjs: 7.8.1 - tslib: 2.6.3 - uid: 2.0.2 - optionalDependencies: - class-transformer: 0.5.1 - class-validator: 0.14.1 - - '@nestjs/config@3.2.3(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1)': - dependencies: - '@nestjs/common': 10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - dotenv: 16.4.5 - dotenv-expand: 10.0.0 - lodash: 4.17.21 - rxjs: 7.8.1 - - '@nestjs/core@10.3.10(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)': - dependencies: - '@nestjs/common': 10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nuxtjs/opencollective': 0.3.2(encoding@0.1.13) - fast-safe-stringify: 2.1.1 - iterare: 1.2.1 - path-to-regexp: 3.2.0 - reflect-metadata: 0.2.2 - rxjs: 7.8.1 - tslib: 2.6.3 - uid: 2.0.2 - optionalDependencies: - '@nestjs/platform-express': 10.3.10(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10) - transitivePeerDependencies: - - encoding - - '@nestjs/jwt@10.2.0(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))': - dependencies: - '@nestjs/common': 10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@types/jsonwebtoken': 9.0.5 - jsonwebtoken: 9.0.2 - - '@nestjs/passport@10.0.3(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(passport@0.7.0)': - dependencies: - '@nestjs/common': 10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - passport: 0.7.0 - - '@nestjs/platform-express@10.3.10(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10)': + '@netlify/functions@2.8.1': dependencies: - '@nestjs/common': 10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.3.10(@nestjs/common@10.3.10(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.3.10)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) - body-parser: 1.20.2 - cors: 2.8.5 - express: 4.19.2 - multer: 1.4.4-lts.1 - tslib: 2.6.3 - transitivePeerDependencies: - - supports-color + '@netlify/serverless-functions-api': 1.19.1 - '@nestjs/schematics@10.1.2(chokidar@3.6.0)(typescript@5.3.3)': - dependencies: - '@angular-devkit/core': 17.3.8(chokidar@3.6.0) - '@angular-devkit/schematics': 17.3.8(chokidar@3.6.0) - comment-json: 4.2.3 - jsonc-parser: 3.3.1 - pluralize: 8.0.0 - typescript: 5.3.3 - transitivePeerDependencies: - - chokidar + '@netlify/node-cookies@0.1.0': {} - '@nestjs/schematics@10.1.2(chokidar@3.6.0)(typescript@5.5.3)': + '@netlify/serverless-functions-api@1.19.1': dependencies: - '@angular-devkit/core': 17.3.8(chokidar@3.6.0) - '@angular-devkit/schematics': 17.3.8(chokidar@3.6.0) - comment-json: 4.2.3 - jsonc-parser: 3.3.1 - pluralize: 8.0.0 - typescript: 5.5.3 - transitivePeerDependencies: - - chokidar + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -11725,32 +11600,85 @@ snapshots: mkdirp: 1.0.4 rimraf: 3.0.2 - '@nuxtjs/opencollective@0.3.2(encoding@0.1.13)': - dependencies: - chalk: 4.1.2 - consola: 2.15.3 - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - '@one-ini/wasm@0.1.1': {} - '@pkgjs/parseargs@0.11.0': + '@parcel/watcher-android-arm64@2.4.1': optional: true - '@pkgr/core@0.1.1': {} + '@parcel/watcher-darwin-arm64@2.4.1': + optional: true - '@pnpm/config.env-replace@1.1.0': {} + '@parcel/watcher-darwin-x64@2.4.1': + optional: true - '@pnpm/network.ca-file@1.0.2': - dependencies: - graceful-fs: 4.2.10 + '@parcel/watcher-freebsd-x64@2.4.1': + optional: true - '@pnpm/npm-conf@2.2.2': - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 + '@parcel/watcher-linux-arm-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.4.1': + optional: true + + '@parcel/watcher-wasm@2.4.1': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.7 + + '@parcel/watcher-win32-arm64@2.4.1': + optional: true + + '@parcel/watcher-win32-ia32@2.4.1': + optional: true + + '@parcel/watcher-win32-x64@2.4.1': + optional: true + + '@parcel/watcher@2.4.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.7 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.2.2': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 '@polka/url@1.0.0-next.25': {} @@ -11764,6 +11692,12 @@ snapshots: optionalDependencies: rollup: 3.29.4 + '@rollup/plugin-alias@5.1.0(rollup@4.18.1)': + dependencies: + slash: 4.0.0 + optionalDependencies: + rollup: 4.18.1 + '@rollup/plugin-babel@5.3.1(@babel/core@7.24.9)(rollup@2.79.1)': dependencies: '@babel/core': 7.24.9 @@ -11784,12 +11718,37 @@ snapshots: optionalDependencies: rollup: 3.29.4 + '@rollup/plugin-commonjs@25.0.8(rollup@4.18.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.10 + optionalDependencies: + rollup: 4.18.1 + + '@rollup/plugin-inject@5.0.5(rollup@4.18.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + estree-walker: 2.0.2 + magic-string: 0.30.10 + optionalDependencies: + rollup: 4.18.1 + '@rollup/plugin-json@6.1.0(rollup@3.29.4)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@3.29.4) optionalDependencies: rollup: 3.29.4 + '@rollup/plugin-json@6.1.0(rollup@4.18.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + optionalDependencies: + rollup: 4.18.1 + '@rollup/plugin-node-resolve@15.2.3(rollup@2.79.1)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@2.79.1) @@ -11812,6 +11771,17 @@ snapshots: optionalDependencies: rollup: 3.29.4 + '@rollup/plugin-node-resolve@15.2.3(rollup@4.18.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 4.18.1 + '@rollup/plugin-replace@2.4.2(rollup@2.79.1)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.79.1) @@ -11825,6 +11795,13 @@ snapshots: optionalDependencies: rollup: 3.29.4 + '@rollup/plugin-replace@5.0.7(rollup@4.18.1)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + magic-string: 0.30.10 + optionalDependencies: + rollup: 4.18.1 + '@rollup/plugin-terser@0.4.4(rollup@2.79.1)': dependencies: serialize-javascript: 6.0.2 @@ -11833,6 +11810,14 @@ snapshots: optionalDependencies: rollup: 2.79.1 + '@rollup/plugin-terser@0.4.4(rollup@4.18.1)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.31.3 + optionalDependencies: + rollup: 4.18.1 + '@rollup/pluginutils@3.1.0(rollup@2.79.1)': dependencies: '@types/estree': 0.0.39 @@ -11957,19 +11942,13 @@ snapshots: dependencies: shiki: 1.10.3 - '@sideway/address@4.1.5': - dependencies: - '@hapi/hoek': 9.3.0 - - '@sideway/formula@3.0.1': {} - - '@sideway/pinpoint@2.0.0': {} - '@simonwep/pickr@1.8.2': dependencies: core-js: 3.37.1 nanopop: 2.4.2 + '@sindresorhus/merge-streams@2.3.0': {} + '@stylistic/stylelint-plugin@2.1.2(stylelint@16.7.0(typescript@5.5.3))': dependencies: '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) @@ -12021,36 +12000,26 @@ snapshots: '@trysound/sax@0.2.0': {} - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@tsconfig/node12@1.0.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@tsconfig/node14@1.0.3': + optional: true - '@tsconfig/node16@1.0.4': {} + '@tsconfig/node16@1.0.4': + optional: true '@types/argparse@1.0.38': {} '@types/bintrees@1.0.6': {} - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.14.11 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.14.11 - '@types/conventional-commits-parser@5.0.0': dependencies: '@types/node': 20.14.11 - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.5 - '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 @@ -12060,20 +12029,6 @@ snapshots: '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.19.5': - dependencies: - '@types/node': 20.14.11 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.15 - '@types/serve-static': 1.15.7 - '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 @@ -12085,9 +12040,9 @@ snapshots: '@types/html-minifier-terser@7.0.2': {} - '@types/http-errors@2.0.4': {} - - '@types/js-yaml@4.0.9': {} + '@types/http-proxy@1.17.14': + dependencies: + '@types/node': 20.14.11 '@types/jsdom@21.1.7': dependencies: @@ -12101,10 +12056,6 @@ snapshots: dependencies: '@types/node': 18.19.40 - '@types/jsonwebtoken@9.0.5': - dependencies: - '@types/node': 20.14.11 - '@types/linkify-it@5.0.0': {} '@types/lodash.clonedeep@4.5.9': @@ -12120,14 +12071,10 @@ snapshots: '@types/mdurl@2.0.0': {} - '@types/mime@1.3.5': {} - '@types/minimatch@3.0.5': {} '@types/minimist@1.2.5': {} - '@types/mockjs@1.0.10': {} - '@types/node@12.20.55': {} '@types/node@18.19.40': @@ -12154,25 +12101,10 @@ snapshots: dependencies: '@types/node': 20.14.11 - '@types/qs@6.9.15': {} - - '@types/range-parser@1.2.7': {} - '@types/resolve@1.20.2': {} '@types/semver@7.5.8': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.14.11 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.14.11 - '@types/send': 0.17.4 - '@types/sortablejs@1.15.8': {} '@types/tough-cookie@4.0.5': {} @@ -12181,8 +12113,6 @@ snapshots: '@types/unist@3.0.2': {} - '@types/validator@13.12.0': {} - '@types/web-bluetooth@0.0.20': {} '@types/which@3.0.4': {} @@ -12211,7 +12141,7 @@ snapshots: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 eslint: 8.57.0 optionalDependencies: typescript: 5.5.3 @@ -12227,7 +12157,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: @@ -12241,7 +12171,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -12270,6 +12200,24 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@vercel/nft@0.26.5(encoding@0.1.13)': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) + '@rollup/pluginutils': 4.2.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.7 + node-gyp-build: 4.8.1 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3))(vue@3.4.32(typescript@5.5.3))': dependencies: '@babel/core': 7.24.9 @@ -12557,97 +12505,18 @@ snapshots: - '@vue/composition-api' - vue - '@webassemblyjs/ast@1.12.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - - '@webassemblyjs/helper-api-error@1.11.6': {} - - '@webassemblyjs/helper-buffer@1.12.1': {} - - '@webassemblyjs/helper-numbers@1.11.6': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - - '@webassemblyjs/helper-wasm-section@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 - - '@webassemblyjs/ieee754@1.11.6': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.6': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.6': {} - - '@webassemblyjs/wasm-edit@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 - - '@webassemblyjs/wasm-gen@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wasm-opt@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - - '@webassemblyjs/wasm-parser@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wast-printer@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 through: 2.3.8 + abbrev@1.1.1: {} + abbrev@2.0.0: {} - accepts@1.3.8: + abort-controller@3.0.0: dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 + event-target-shim: 5.0.1 acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: @@ -12660,18 +12529,19 @@ snapshots: acorn-walk@8.3.3: dependencies: acorn: 8.12.1 + optional: true acorn@8.12.1: {} agent-base@6.0.2: dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -12684,14 +12554,6 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.12.0): - optionalDependencies: - ajv: 8.12.0 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -12699,13 +12561,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -12737,10 +12592,6 @@ snapshots: ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-escapes@6.2.1: {} ansi-regex@5.0.1: {} @@ -12790,11 +12641,37 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - append-field@1.0.0: {} + aproba@2.0.0: {} + + archiver-utils@5.0.2: + dependencies: + glob: 10.4.5 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.5.2 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.5 + buffer-crc32: 1.0.0 + readable-stream: 4.5.2 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 are-docs-informative@0.0.2: {} - arg@4.1.3: {} + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + arg@4.1.3: + optional: true arg@5.0.2: {} @@ -12815,8 +12692,6 @@ snapshots: array-differ@3.0.0: {} - array-flatten@1.1.1: {} - array-ify@1.0.0: {} array-timsort@1.0.3: {} @@ -12842,6 +12717,8 @@ snapshots: astral-regex@2.0.0: {} + async-sema@3.1.1: {} + async-validator@4.2.5: {} async@3.2.5: {} @@ -12878,6 +12755,8 @@ snapshots: transitivePeerDependencies: - debug + b4a@1.6.6: {} + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.9): dependencies: '@babel/compat-data': 7.24.9 @@ -12906,9 +12785,10 @@ snapshots: balanced-match@2.0.0: {} - base64-js@1.5.1: {} + bare-events@2.4.2: + optional: true - bcryptjs@2.4.3: {} + base64-js@1.5.1: {} better-path-resolve@1.0.0: dependencies: @@ -12916,33 +12796,14 @@ snapshots: binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + bintrees@1.0.2: {} birpc@0.2.17: {} - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - boolbase@1.0.0: {} boxen@7.1.1: @@ -12976,11 +12837,11 @@ snapshots: node-releases: 2.0.17 update-browserslist-db: 1.1.0(browserslist@4.23.2) - buffer-equal-constant-time@1.0.1: {} + buffer-crc32@1.0.0: {} buffer-from@1.1.2: {} - buffer@5.7.1: + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 @@ -12991,11 +12852,20 @@ snapshots: dependencies: run-applescript: 7.0.0 - busboy@1.6.0: + c12@1.11.1: dependencies: - streamsearch: 1.1.0 - - bytes@3.1.2: {} + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.3 + rc9: 2.1.2 cac@6.7.14: {} @@ -13118,8 +12988,6 @@ snapshots: chownr@2.0.0: {} - chrome-trace-event@1.0.4: {} - ci-info@3.9.0: {} ci-info@4.0.0: {} @@ -13142,14 +13010,6 @@ snapshots: dependencies: consola: 3.2.3 - class-transformer@0.5.1: {} - - class-validator@0.14.1: - dependencies: - '@types/validator': 13.12.0 - libphonenumber-js: 1.11.4 - validator: 13.12.0 - class-variance-authority@0.7.0: dependencies: clsx: 2.1.1 @@ -13171,30 +13031,20 @@ snapshots: cli-boxes@3.0.0: {} - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 - cli-spinners@2.9.2: {} - - cli-table3@0.6.5: - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 string-width: 7.2.0 - cli-width@3.0.0: {} - - cli-width@4.1.0: {} + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 cliui@6.0.0: dependencies: @@ -13214,10 +13064,10 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone@1.0.4: {} - clsx@2.1.1: {} + cluster-key-slot@1.1.2: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -13230,6 +13080,8 @@ snapshots: color-name@1.1.4: {} + color-support@1.1.3: {} + colord@2.9.3: {} colorette@2.0.20: {} @@ -13253,14 +13105,6 @@ snapshots: commander@9.5.0: optional: true - comment-json@4.2.3: - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 - comment-json@4.2.4: dependencies: array-timsort: 1.0.3 @@ -13284,19 +13128,20 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.5.2 + compute-scroll-into-view@1.0.20: {} computeds@0.0.1: {} concat-map@0.0.1: {} - concat-stream@1.6.2: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - confbox@0.1.7: {} config-chain@1.1.13: @@ -13318,11 +13163,7 @@ snapshots: consola@3.2.3: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} + console-control-strings@1.1.0: {} conventional-changelog-angular@7.0.0: dependencies: @@ -13341,9 +13182,7 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie@0.6.0: {} + cookie-es@1.2.1: {} copy-anything@3.0.5: dependencies: @@ -13357,11 +13196,6 @@ snapshots: core-util-is@1.0.3: {} - cors@2.8.5: - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - cosmiconfig-typescript-loader@5.0.0(@types/node@20.14.11)(cosmiconfig@9.0.0(typescript@5.5.3))(typescript@5.5.3): dependencies: '@types/node': 20.14.11 @@ -13377,15 +13211,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@5.3.3): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.3.3 - cosmiconfig@9.0.0(typescript@5.5.3): dependencies: env-paths: 2.2.1 @@ -13395,7 +13220,17 @@ snapshots: optionalDependencies: typescript: 5.5.3 - create-require@1.1.1: {} + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.5.2 + + create-require@1.1.1: + optional: true + + croner@8.1.0: {} cross-env@7.0.3: dependencies: @@ -13413,6 +13248,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.2.4: {} + crypto-random-string@2.0.0: {} crypto-random-string@4.0.0: @@ -13616,9 +13453,9 @@ snapshots: csstype@3.1.3: {} - cz-git@1.9.3: {} + cz-git@1.9.4: {} - czg@1.9.3: {} + czg@1.9.4: {} dargs@8.1.0: {} @@ -13651,6 +13488,8 @@ snapshots: dayjs@1.11.12: {} + db0@0.1.4: {} + de-indent@1.0.2: {} debug@2.6.9: @@ -13661,11 +13500,9 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.5(supports-color@5.5.0): + debug@4.3.5: dependencies: ms: 2.1.2 - optionalDependencies: - supports-color: 5.5.0 decamelize@1.2.0: {} @@ -13686,10 +13523,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 - defaults@1.0.4: - dependencies: - clone: 1.0.4 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -13710,6 +13543,10 @@ snapshots: delayed-stream@1.0.0: {} + delegates@1.0.0: {} + + denque@2.1.0: {} + depcheck@1.4.7: dependencies: '@babel/parser': 7.24.8 @@ -13718,7 +13555,7 @@ snapshots: callsite: 1.0.0 camelcase: 6.3.0 cosmiconfig: 7.1.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 deps-regex: 0.2.0 findup-sync: 5.0.0 ignore: 5.3.1 @@ -13742,15 +13579,22 @@ snapshots: deps-regex@0.2.0: {} + destr@2.0.3: {} + destroy@1.2.0: {} detect-file@1.0.0: {} detect-indent@6.1.0: {} + detect-libc@1.0.3: {} + + detect-libc@2.0.3: {} + didyoumean@1.2.2: {} - diff@4.0.2: {} + diff@4.0.2: + optional: true dijkstrajs@1.0.3: {} @@ -13815,7 +13659,9 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-expand@10.0.0: {} + dot-prop@8.0.2: + dependencies: + type-fest: 3.13.1 dotenv-expand@8.0.3: {} @@ -13829,10 +13675,6 @@ snapshots: eastasianwidth@0.2.0: {} - ecdsa-sig-formatter@1.0.11: - dependencies: - safe-buffer: 5.2.1 - echarts@5.5.1: dependencies: tslib: 2.3.0 @@ -13993,6 +13835,32 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -14056,6 +13924,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -14116,7 +13986,7 @@ snapshots: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0): dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 doctrine: 3.0.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -14136,7 +14006,7 @@ snapshots: '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 escape-string-regexp: 4.0.0 eslint: 8.57.0 esquery: 1.6.0 @@ -14266,11 +14136,6 @@ snapshots: eslint-rule-composer@0.3.0: {} - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 @@ -14293,7 +14158,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -14345,8 +14210,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-walker@1.0.1: {} @@ -14371,6 +14234,8 @@ snapshots: stream-combiner: 0.0.4 through: 2.3.8 + event-target-shim@5.0.1: {} + eventemitter3@5.0.1: {} events@3.3.0: {} @@ -14391,42 +14256,6 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 - express@4.19.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - extendable-error@0.1.7: {} external-editor@3.1.0: @@ -14441,6 +14270,8 @@ snapshots: fast-equals@5.0.1: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -14453,8 +14284,6 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-safe-stringify@2.1.1: {} - fast-string-compare@3.0.0: {} fast-uri@3.0.1: {} @@ -14470,10 +14299,6 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -14486,6 +14311,8 @@ snapshots: dependencies: flat-cache: 5.0.0 + file-uri-to-path@1.0.0: {} + filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -14494,18 +14321,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-up-simple@1.0.0: {} find-up@4.1.0: @@ -14569,23 +14384,6 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1): - dependencies: - '@babel/code-frame': 7.24.7 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 8.3.6(typescript@5.3.3) - deepmerge: 4.3.1 - fs-extra: 10.1.0 - memfs: 3.5.3 - minimatch: 3.1.2 - node-abort-controller: 3.1.1 - schema-utils: 3.3.0 - semver: 7.6.3 - tapable: 2.2.1 - typescript: 5.3.3 - webpack: 5.92.1 - form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -14596,8 +14394,6 @@ snapshots: dependencies: fetch-blob: 3.2.0 - forwarded@0.2.0: {} - fraction.js@4.3.7: {} fresh@0.5.2: {} @@ -14639,8 +14435,6 @@ snapshots: dependencies: minipass: 3.3.6 - fs-monkey@1.0.6: {} - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -14659,6 +14453,18 @@ snapshots: fx@35.0.0: {} + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + gensequence@7.0.0: {} gensync@1.0.0-beta.2: {} @@ -14679,6 +14485,8 @@ snapshots: get-own-enumerable-property-symbols@3.0.2: {} + get-port-please@3.1.2: {} + get-stdin@9.0.0: {} get-stream@8.0.1: {} @@ -14693,6 +14501,17 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + giget@1.2.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.9 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 + git-raw-commits@4.0.0: dependencies: dargs: 8.1.0 @@ -14707,17 +14526,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} - - glob@10.4.2: - dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 - glob@10.4.5: dependencies: foreground-child: 3.2.1 @@ -14813,6 +14621,15 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + globjoin@0.1.4: {} gopd@1.0.1: @@ -14831,6 +14648,25 @@ snapshots: graphemer@1.4.0: {} + gzip-size@7.0.0: + dependencies: + duplexer: 0.1.2 + + h3@1.12.0: + dependencies: + cookie-es: 1.2.1 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + transitivePeerDependencies: + - uWebSockets.js + has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -14851,6 +14687,8 @@ snapshots: dependencies: has-symbols: 1.0.3 + has-unicode@2.0.1: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -14912,31 +14750,35 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color + http-shutdown@1.2.2: {} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color + httpxy@0.1.5: {} + human-id@1.0.2: {} human-signals@5.0.0: {} @@ -14959,8 +14801,6 @@ snapshots: ieee754@1.2.1: {} - ignore-by-default@1.0.1: {} - ignore-walk@5.0.1: dependencies: minimatch: 5.1.6 @@ -14995,54 +14835,32 @@ snapshots: ini@4.1.1: {} - inquirer@8.2.6: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - - inquirer@9.2.15: - dependencies: - '@ljharb/through': 2.3.13 - ansi-escapes: 4.3.2 - chalk: 5.3.0 - cli-cursor: 3.1.0 - cli-width: 4.1.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 1.0.0 - ora: 5.4.1 - run-async: 3.0.0 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 + ioredis@5.4.1: + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.5 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} + iron-webcrypto@1.2.1: {} is-array-buffer@3.0.4: dependencies: @@ -15117,8 +14935,6 @@ snapshots: global-directory: 4.0.1 is-path-inside: 4.0.0 - is-interactive@1.0.0: {} - is-lambda@1.0.1: {} is-module@1.0.0: {} @@ -15188,8 +15004,6 @@ snapshots: is-typedarray@1.0.0: {} - is-unicode-supported@0.1.0: {} - is-weakref@1.0.2: dependencies: call-bind: 1.0.7 @@ -15206,14 +15020,16 @@ snapshots: dependencies: is-inside-container: 1.0.0 + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + isarray@1.0.0: {} isarray@2.0.5: {} isexe@2.0.0: {} - iterare@1.2.1: {} - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -15233,24 +15049,10 @@ snapshots: filelist: 1.0.4 minimatch: 3.1.2 - jest-worker@27.5.1: - dependencies: - '@types/node': 20.14.11 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jiti@1.21.6: {} jju@1.4.0: {} - joi@17.13.3: - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - js-beautify@1.15.1: dependencies: config-chain: 1.1.13 @@ -15333,10 +15135,6 @@ snapshots: espree: 9.6.1 semver: 7.6.3 - jsonc-parser@3.2.1: {} - - jsonc-parser@3.3.1: {} - jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -15351,36 +15149,16 @@ snapshots: jsonpointer@5.0.1: {} - jsonwebtoken@9.0.2: - dependencies: - jws: 3.2.2 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.6.3 - - jwa@1.4.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - jws@3.2.2: - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 kind-of@6.0.3: {} + klona@2.0.6: {} + + knitwork@1.1.0: {} + known-css-properties@0.34.0: {} kolorist@1.8.0: {} @@ -15391,6 +15169,10 @@ snapshots: dependencies: package-json: 10.0.1 + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + leven@3.1.0: {} levn@0.4.1: @@ -15398,8 +15180,6 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libphonenumber-js@1.11.4: {} - lilconfig@2.1.0: {} lilconfig@3.1.2: {} @@ -15410,7 +15190,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 execa: 8.0.1 lilconfig: 3.1.2 listr2: 8.2.3 @@ -15421,6 +15201,29 @@ snapshots: transitivePeerDependencies: - supports-color + listhen@1.7.2: + dependencies: + '@parcel/watcher': 2.4.1 + '@parcel/watcher-wasm': 2.4.1 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.2.3 + crossws: 0.2.4 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.12.0 + http-shutdown: 1.2.2 + jiti: 1.21.6 + mlly: 1.7.1 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.7.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js + listr2@8.2.3: dependencies: cli-truncate: 4.0.0 @@ -15437,7 +15240,10 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - loader-runner@4.3.0: {} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.1.3 locate-path@5.0.0: dependencies: @@ -15461,22 +15267,16 @@ snapshots: lodash.debounce@4.0.8: {} - lodash.get@4.4.2: {} + lodash.defaults@4.2.0: {} - lodash.includes@4.3.0: {} + lodash.get@4.4.2: {} - lodash.isboolean@3.0.3: {} + lodash.isarguments@3.1.0: {} lodash.isequal@4.5.0: {} - lodash.isinteger@4.0.4: {} - - lodash.isnumber@3.0.3: {} - lodash.isplainobject@4.0.6: {} - lodash.isstring@4.0.1: {} - lodash.kebabcase@4.1.1: {} lodash.memoize@4.1.2: {} @@ -15485,8 +15285,6 @@ snapshots: lodash.mergewith@4.6.2: {} - lodash.once@4.1.1: {} - lodash.snakecase@4.1.1: {} lodash.sortby@4.7.0: {} @@ -15501,11 +15299,6 @@ snapshots: lodash@4.17.21: {} - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - log-update@6.0.0: dependencies: ansi-escapes: 6.2.1 @@ -15555,11 +15348,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.8: + make-dir@3.1.0: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + semver: 6.3.1 - make-error@1.3.6: {} + make-error@1.3.6: + optional: true make-fetch-happen@8.0.14: dependencies: @@ -15592,24 +15386,14 @@ snapshots: mdn-data@2.0.30: {} - media-typer@0.3.0: {} - - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - meow@12.1.1: {} meow@13.2.0: {} - merge-descriptors@1.0.1: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: {} - micromatch@4.0.7: dependencies: braces: 3.0.3 @@ -15623,6 +15407,10 @@ snapshots: mime@1.6.0: {} + mime@3.0.0: {} + + mime@4.0.4: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -15702,10 +15490,6 @@ snapshots: mitt@3.0.1: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - mkdirp@1.0.4: {} mkdist@1.5.4(sass@1.77.8)(typescript@5.5.3)(vue-tsc@2.0.26(typescript@5.5.3)): @@ -15735,10 +15519,6 @@ snapshots: pkg-types: 1.1.3 ufo: 1.5.4 - mockjs@1.1.0: - dependencies: - commander: 12.1.0 - mri@1.2.0: {} mrmime@2.0.0: {} @@ -15753,16 +15533,6 @@ snapshots: muggle-string@0.4.1: {} - multer@1.4.4-lts.1: - dependencies: - append-field: 1.0.0 - busboy: 1.6.0 - concat-stream: 1.6.2 - mkdirp: 0.5.6 - object-assign: 4.1.1 - type-is: 1.6.18 - xtend: 4.0.2 - multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -15771,10 +15541,6 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.2 - mute-stream@0.0.8: {} - - mute-stream@1.0.0: {} - mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -15791,24 +15557,107 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.3: {} - - neo-async@2.6.2: {} + nitropack@2.9.7(encoding@0.1.13): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@netlify/functions': 2.8.1 + '@rollup/plugin-alias': 5.1.0(rollup@4.18.1) + '@rollup/plugin-commonjs': 25.0.8(rollup@4.18.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.18.1) + '@rollup/plugin-json': 6.1.0(rollup@4.18.1) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.1) + '@rollup/plugin-replace': 5.0.7(rollup@4.18.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.18.1) + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + '@types/http-proxy': 1.17.14 + '@vercel/nft': 0.26.5(encoding@0.1.13) + archiver: 7.0.1 + c12: 1.11.1 + chalk: 5.3.0 + chokidar: 3.6.0 + citty: 0.1.6 + consola: 3.2.3 + cookie-es: 1.2.1 + croner: 8.1.0 + crossws: 0.2.4 + db0: 0.1.4 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 8.0.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.2.0 + globby: 14.0.2 + gzip-size: 7.0.0 + h3: 1.12.0 + hookable: 5.5.3 + httpxy: 0.1.5 + ioredis: 5.4.1 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + listhen: 1.7.2 + magic-string: 0.30.10 + mime: 4.0.4 + mlly: 1.7.1 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ohash: 1.1.3 + openapi-typescript: 6.7.6 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.3 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.18.1 + rollup-plugin-visualizer: 5.12.0(rollup@4.18.1) + scule: 1.3.0 + semver: 7.6.3 + serve-placeholder: 2.0.2 + serve-static: 1.15.0 + std-env: 3.7.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.10.0 + unimport: 3.9.0(rollup@4.18.1) + unstorage: 1.10.2(ioredis@5.4.1) + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - magicast + - supports-color + - uWebSockets.js no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.3 - node-abort-controller@3.1.1: {} + node-addon-api@7.1.1: {} node-cleanup@2.1.2: {} node-domexception@1.0.0: {} - node-emoji@1.11.0: - dependencies: - lodash: 4.17.21 + node-fetch-native@1.6.4: {} node-fetch@2.7.0(encoding@0.1.13): dependencies: @@ -15822,6 +15671,10 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-forge@1.3.1: {} + + node-gyp-build@4.8.1: {} + node-html-parser@5.4.2: dependencies: css-select: 4.3.0 @@ -15829,18 +15682,9 @@ snapshots: node-releases@2.0.17: {} - nodemon@3.1.4: + nopt@5.0.0: dependencies: - chokidar: 3.6.0 - debug: 4.3.5(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 3.1.2 - pstree.remy: 1.1.8 - semver: 7.6.3 - simple-update-notifier: 2.0.0 - supports-color: 5.5.0 - touch: 3.1.1 - undefsafe: 2.0.5 + abbrev: 1.1.1 nopt@7.2.1: dependencies: @@ -15874,6 +15718,13 @@ snapshots: dependencies: path-key: 4.0.0 + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + nprogress@0.2.0: {} nth-check@2.1.1: @@ -15882,6 +15733,15 @@ snapshots: nwsapi@2.2.12: {} + nypm@0.3.9: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + ufo: 1.5.4 + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -15897,6 +15757,14 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 + ofetch@1.3.4: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + ohash@1.1.3: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -15926,6 +15794,15 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + openapi-typescript@6.7.6: + dependencies: + ansi-colors: 4.1.3 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + supports-color: 9.4.0 + undici: 5.28.4 + yargs-parser: 21.1.1 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -15935,18 +15812,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - os-tmpdir@1.0.2: {} outdent@0.5.0: {} @@ -16039,23 +15904,6 @@ snapshots: no-case: 3.0.4 tslib: 2.6.3 - passport-jwt@4.0.1: - dependencies: - jsonwebtoken: 9.0.2 - passport-strategy: 1.0.0 - - passport-local@1.0.0: - dependencies: - passport-strategy: 1.0.0 - - passport-strategy@1.0.0: {} - - passport@0.7.0: - dependencies: - passport-strategy: 1.0.0 - pause: 0.0.1 - utils-merge: 1.0.1 - path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -16080,12 +15928,10 @@ snapshots: lru-cache: 11.0.0 minipass: 7.1.2 - path-to-regexp@0.1.7: {} - - path-to-regexp@3.2.0: {} - path-type@4.0.0: {} + path-type@5.0.0: {} + pathe@0.2.0: {} pathe@1.1.2: {} @@ -16096,16 +15942,12 @@ snapshots: dependencies: through: 2.3.8 - pause@0.0.1: {} - perfect-debounce@1.0.0: {} picocolors@1.0.1: {} picomatch@2.3.1: {} - picomatch@4.0.1: {} - pidtree@0.6.0: {} pify@2.3.0: {} @@ -16620,6 +16462,8 @@ snapshots: process-nextick-args@2.0.1: {} + process@0.11.10: {} + promise-inflight@1.0.1: {} promise-retry@2.0.1: @@ -16629,11 +16473,6 @@ snapshots: proto-list@1.2.4: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} ps-tree@1.2.0: @@ -16644,8 +16483,6 @@ snapshots: psl@1.9.0: {} - pstree.remy@1.1.8: {} - publint@0.2.9: dependencies: npm-packlist: 5.1.3 @@ -16665,14 +16502,12 @@ snapshots: pngjs: 5.0.0 yargs: 15.4.1 - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - querystringify@2.2.0: {} queue-microtask@1.2.3: {} + queue-tick@1.0.1: {} + radix-vue@1.9.1(vue@3.4.32(typescript@5.5.3)): dependencies: '@floating-ui/dom': 1.6.7 @@ -16690,18 +16525,18 @@ snapshots: transitivePeerDependencies: - '@vue/composition-api' + radix3@1.1.2: {} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 range-parser@1.2.1: {} - raw-body@2.5.2: + rc9@2.1.2: dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 + defu: 6.1.4 + destr: 2.0.3 rc@1.2.8: dependencies: @@ -16750,16 +16585,32 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + refa@0.12.1: dependencies: '@eslint-community/regexpp': 4.11.0 - reflect-metadata@0.2.2: {} - regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 @@ -16851,11 +16702,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - restore-cursor@4.0.0: dependencies: onetime: 5.1.2 @@ -16931,18 +16777,10 @@ snapshots: run-applescript@7.0.0: {} - run-async@2.4.1: {} - - run-async@3.0.0: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: - dependencies: - tslib: 2.6.3 - sade@1.8.1: dependencies: mri: 1.2.0 @@ -16976,12 +16814,6 @@ snapshots: dependencies: xmlchars: 2.2.0 - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - scroll-into-view-if-needed@2.2.31: dependencies: compute-scroll-into-view: 1.0.20 @@ -17034,6 +16866,10 @@ snapshots: dependencies: randombytes: 2.1.0 + serve-placeholder@2.0.2: + dependencies: + defu: 6.1.4 + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 @@ -17100,10 +16936,6 @@ snapshots: signal-exit@4.1.0: {} - simple-update-notifier@2.0.0: - dependencies: - semver: 7.6.3 - sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.25 @@ -17114,6 +16946,8 @@ snapshots: slash@4.0.0: {} + slash@5.1.0: {} + slashes@3.0.12: {} slice-ansi@4.0.0: @@ -17139,7 +16973,7 @@ snapshots: socks-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -17210,6 +17044,8 @@ snapshots: stackback@0.0.2: {} + standard-as-callback@2.1.0: {} + statuses@2.0.1: {} std-env@3.7.0: {} @@ -17218,7 +17054,13 @@ snapshots: dependencies: duplexer: 0.1.2 - streamsearch@1.1.0: {} + streamx@2.18.0: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.1 + optionalDependencies: + bare-events: 2.4.2 string-argv@0.3.2: {} @@ -17310,6 +17152,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + style-search@0.1.0: {} stylehacks@7.0.2(postcss@8.4.39): @@ -17387,7 +17233,7 @@ snapshots: cosmiconfig: 9.0.0(typescript@5.5.3) css-functions-list: 3.2.2 css-tree: 2.3.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 file-entry-cache: 9.0.0 @@ -17448,6 +17294,8 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@9.4.0: {} + supports-hyperlinks@3.0.0: dependencies: has-flag: 4.0.0 @@ -17471,8 +17319,6 @@ snapshots: csso: 5.0.5 picocolors: 1.0.1 - symbol-observable@4.0.0: {} - symbol-tree@3.2.4: {} synckit@0.6.2: @@ -17484,6 +17330,8 @@ snapshots: '@pkgr/core': 0.1.1 tslib: 2.6.3 + system-architecture@0.1.0: {} + tabbable@6.2.0: {} table@6.8.2: @@ -17529,6 +17377,12 @@ snapshots: tapable@2.2.1: {} + tar-stream@3.1.7: + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.18.0 + tar@6.2.1: dependencies: chownr: 2.0.0 @@ -17549,15 +17403,6 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.3.10(webpack@5.92.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.31.3 - webpack: 5.92.1 - terser@5.31.3: dependencies: '@jridgewell/source-map': 0.3.6 @@ -17565,6 +17410,10 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + text-decoder@1.1.1: + dependencies: + b4a: 1.6.6 + text-extensions@2.4.0: {} text-table@0.2.0: {} @@ -17605,8 +17454,6 @@ snapshots: totalist@3.0.1: {} - touch@3.1.1: {} - tough-cookie@4.1.4: dependencies: psl: 1.9.0 @@ -17624,8 +17471,6 @@ snapshots: dependencies: punycode: 2.3.1 - tree-kill@1.2.2: {} - ts-api-utils@1.3.0(typescript@5.5.3): dependencies: typescript: 5.5.3 @@ -17649,18 +17494,7 @@ snapshots: typescript: 5.5.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - - tsconfig-paths-webpack-plugin@4.1.0: - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.17.0 - tsconfig-paths: 4.2.0 - - tsconfig-paths@4.2.0: - dependencies: - json5: 2.2.3 - minimist: 1.2.8 - strip-bom: 3.0.0 + optional: true tslib@2.3.0: {} @@ -17701,8 +17535,6 @@ snapshots: type-fest@0.20.2: {} - type-fest@0.21.3: {} - type-fest@0.6.0: {} type-fest@0.8.1: {} @@ -17711,10 +17543,7 @@ snapshots: type-fest@2.19.0: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 + type-fest@3.13.1: {} typed-array-buffer@1.0.2: dependencies: @@ -17752,20 +17581,12 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typedarray@0.0.6: {} - - typescript@5.3.3: {} - typescript@5.4.2: {} typescript@5.5.3: {} ufo@1.5.4: {} - uid@2.0.2: - dependencies: - '@lukeed/csprng': 1.1.0 - unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -17806,10 +17627,29 @@ snapshots: - supports-color - vue-tsc - undefsafe@2.0.5: {} + uncrypto@0.1.3: {} + + unctx@2.3.1: + dependencies: + acorn: 8.12.1 + estree-walker: 3.0.3 + magic-string: 0.30.10 + unplugin: 1.11.0 undici-types@5.26.5: {} + undici@5.28.4: + dependencies: + '@fastify/busboy': 2.1.1 + + unenv@1.10.0: + dependencies: + consola: 3.2.3 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 + unicode-canonical-property-names-ecmascript@2.0.0: {} unicode-match-property-ecmascript@2.0.0: @@ -17823,6 +17663,24 @@ snapshots: unicorn-magic@0.1.0: {} + unimport@3.9.0(rollup@4.18.1): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.10 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.11.0 + transitivePeerDependencies: + - rollup + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 @@ -17845,8 +17703,6 @@ snapshots: universalify@2.0.1: {} - unpipe@1.0.0: {} - unplugin@1.11.0: dependencies: acorn: 8.12.1 @@ -17854,6 +17710,29 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 + unstorage@1.10.2(ioredis@5.4.1): + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.12.0 + listhen: 1.7.2 + lru-cache: 10.4.3 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ufo: 1.5.4 + optionalDependencies: + ioredis: 5.4.1 + transitivePeerDependencies: + - uWebSockets.js + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + pathe: 1.1.2 + untyped@1.4.2: dependencies: '@babel/core': 7.24.9 @@ -17866,6 +17745,15 @@ snapshots: transitivePeerDependencies: - supports-color + unwasm@0.3.9: + dependencies: + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + unplugin: 1.11.0 + upath@1.2.0: {} update-browserslist-db@1.1.0(browserslist@4.23.2): @@ -17889,6 +17777,8 @@ snapshots: semver-diff: 4.0.0 xdg-basedir: 5.1.0 + uqr@0.1.2: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -17898,11 +17788,12 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - util-deprecate@1.0.2: {} + urlpattern-polyfill@8.0.2: {} - utils-merge@1.0.1: {} + util-deprecate@1.0.2: {} - v8-compile-cache-lib@3.0.1: {} + v8-compile-cache-lib@3.0.1: + optional: true validate-npm-package-license@3.0.4: dependencies: @@ -17911,8 +17802,6 @@ snapshots: validator@13.12.0: {} - vary@1.1.2: {} - vite-hot-client@0.2.3(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3)): dependencies: vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3) @@ -17920,7 +17809,7 @@ snapshots: vite-node@2.0.3(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3): dependencies: cac: 6.7.14 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 pathe: 1.1.2 tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3) @@ -17937,7 +17826,7 @@ snapshots: vite-plugin-compression@0.5.1(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3)): dependencies: chalk: 4.1.2 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 fs-extra: 10.1.0 vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3) transitivePeerDependencies: @@ -17948,7 +17837,7 @@ snapshots: '@microsoft/api-extractor': 7.43.0(@types/node@20.14.11) '@rollup/pluginutils': 5.1.0(rollup@4.18.1) '@vue/language-core': 1.8.27(typescript@5.5.3) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 kolorist: 1.8.0 magic-string: 0.30.10 typescript: 5.5.3 @@ -17980,7 +17869,7 @@ snapshots: dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.18.1) - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 error-stack-parser-es: 0.1.4 fs-extra: 11.2.0 open: 10.1.0 @@ -18001,7 +17890,7 @@ snapshots: vite-plugin-pwa@0.20.0(vite@5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3))(workbox-build@7.1.1)(workbox-window@7.1.0): dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 fast-glob: 3.3.2 pretty-bytes: 6.1.1 vite: 5.3.4(@types/node@20.14.11)(sass@1.77.8)(terser@5.31.3) @@ -18109,7 +17998,7 @@ snapshots: '@vitest/spy': 2.0.3 '@vitest/utils': 2.0.3 chai: 5.1.1 - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 execa: 8.0.1 magic-string: 0.30.10 pathe: 1.1.2 @@ -18144,7 +18033,7 @@ snapshots: vue-eslint-parser@9.4.3(eslint@8.57.0): dependencies: - debug: 4.3.5(supports-color@5.5.0) + debug: 4.3.5 eslint: 8.57.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -18214,15 +18103,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - watchpack@2.4.1: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - web-streams-polyfill@3.3.3: {} webidl-conversions@3.0.1: {} @@ -18231,43 +18111,10 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-node-externals@3.0.0: {} - webpack-sources@3.2.3: {} webpack-virtual-modules@0.6.2: {} - webpack@5.92.1: - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.0 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.92.1) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - webpod@0.0.2: {} whatwg-encoding@3.1.1: @@ -18332,6 +18179,10 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + widest-line@4.0.1: dependencies: string-width: 5.1.2 @@ -18499,8 +18350,6 @@ snapshots: xmlchars@2.2.0: {} - xtend@4.0.2: {} - y18n@4.0.3: {} y18n@5.0.8: {} @@ -18564,7 +18413,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: {} + yn@3.1.1: + optional: true yocto-queue@0.1.0: {} @@ -18578,6 +18428,12 @@ snapshots: optionalDependencies: commander: 9.5.0 + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.5.2 + zrender@5.6.0: dependencies: tslib: 2.3.0