From 0b88fe87e59423820b568d77bcc057021b45f595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kiss=20D=C3=A1vid?= Date: Wed, 19 Aug 2026 19:59:18 +0200 Subject: [PATCH] room reservation model, controller, seeder and migration files added --- .adonisjs/server/controllers.ts | 14 + .adonisjs/server/events.ts | 6 + .adonisjs/server/listeners.ts | 6 + .adonisjs/server/routes.d.ts | 102 + .dockerignore | 15 + .env.example | 3 +- .env.test | 12 - .junie/memory/errors.md | 0 .junie/memory/feedback.md | 0 .junie/memory/language.json | 1 + .junie/memory/memory.version | 1 + .junie/memory/tasks.md | 0 API_DOCS.md | 14 +- DEPLOYMENT.md | 77 + Dockerfile | 31 + ace.js | 2 +- adonisrc.ts | 10 +- app/controllers/images_controller.ts | 69 +- .../room_reservations_controller.ts | 13 +- app/middleware/auth_middleware.ts | 2 +- app/models/image.ts | 22 + config/app.ts | 12 - config/cors.ts | 17 +- config/drive.ts | 25 + config/encryption.ts | 11 + .../1778056304396_create_images_table.ts | 21 + database/schema.ts | 200 + database/seeders/restaurant_menu_seeder.ts | 7 + database/seeders/room_seeder.ts | 6 +- k3s-deployment.yaml | 196 + package-lock.json | 5519 ++++++++++------- package.json | 37 +- start/env.ts | 7 + start/routes.ts | 25 +- .../9a0f8e40-19b2-4d6b-be32-f2d80d4d07d3.jpg | Bin 0 -> 4839083 bytes .../d7cc6bb7-a771-4fec-8607-7b97f1cdf8e4.png | Bin 0 -> 6398425 bytes storage/uploads/dogzizvrt9tk4pupoaf2gwci.jpg | Bin 0 -> 7088890 bytes .../f2076a11-efd2-4a8e-a34f-cde8dedae6b7.jpg | Bin 0 -> 7088890 bytes .../f2c85f8d-553b-4977-9520-c5498aadae24.png | Bin 0 -> 5820515 bytes storage/uploads/krvwyeqhkdtiixowljzja10c.jpg | Bin 0 -> 1032442 bytes storage/uploads/oq8850ehz04lugwwpoly5xkh.jpg | Bin 0 -> 6698325 bytes .../9a0f8e40-19b2-4d6b-be32-f2d80d4d07d3.jpg | Bin 0 -> 13564 bytes .../d7cc6bb7-a771-4fec-8607-7b97f1cdf8e4.png | Bin 0 -> 46358 bytes .../thumbnails/dogzizvrt9tk4pupoaf2gwci.jpg | Bin 0 -> 29010 bytes .../f2076a11-efd2-4a8e-a34f-cde8dedae6b7.jpg | Bin 0 -> 29010 bytes .../f2c85f8d-553b-4977-9520-c5498aadae24.png | Bin 0 -> 24509 bytes .../thumbnails/krvwyeqhkdtiixowljzja10c.jpg | Bin 0 -> 18296 bytes .../thumbnails/oq8850ehz04lugwwpoly5xkh.jpg | Bin 0 -> 31427 bytes tests/functional/images/show.spec.ts | 62 + 49 files changed, 4073 insertions(+), 2472 deletions(-) create mode 100644 .adonisjs/server/controllers.ts create mode 100644 .adonisjs/server/events.ts create mode 100644 .adonisjs/server/listeners.ts create mode 100644 .adonisjs/server/routes.d.ts create mode 100644 .dockerignore mode change 100644 => 100755 .env.example delete mode 100644 .env.test create mode 100644 .junie/memory/errors.md create mode 100644 .junie/memory/feedback.md create mode 100644 .junie/memory/language.json create mode 100644 .junie/memory/memory.version create mode 100644 .junie/memory/tasks.md create mode 100644 DEPLOYMENT.md create mode 100644 Dockerfile create mode 100644 app/models/image.ts create mode 100644 config/drive.ts create mode 100644 config/encryption.ts create mode 100644 database/migrations/1778056304396_create_images_table.ts create mode 100644 database/schema.ts create mode 100644 database/seeders/restaurant_menu_seeder.ts create mode 100644 k3s-deployment.yaml mode change 100755 => 100644 package-lock.json create mode 100644 storage/uploads/9a0f8e40-19b2-4d6b-be32-f2d80d4d07d3.jpg create mode 100644 storage/uploads/d7cc6bb7-a771-4fec-8607-7b97f1cdf8e4.png create mode 100644 storage/uploads/dogzizvrt9tk4pupoaf2gwci.jpg create mode 100644 storage/uploads/f2076a11-efd2-4a8e-a34f-cde8dedae6b7.jpg create mode 100644 storage/uploads/f2c85f8d-553b-4977-9520-c5498aadae24.png create mode 100644 storage/uploads/krvwyeqhkdtiixowljzja10c.jpg create mode 100644 storage/uploads/oq8850ehz04lugwwpoly5xkh.jpg create mode 100644 storage/uploads/thumbnails/9a0f8e40-19b2-4d6b-be32-f2d80d4d07d3.jpg create mode 100644 storage/uploads/thumbnails/d7cc6bb7-a771-4fec-8607-7b97f1cdf8e4.png create mode 100644 storage/uploads/thumbnails/dogzizvrt9tk4pupoaf2gwci.jpg create mode 100644 storage/uploads/thumbnails/f2076a11-efd2-4a8e-a34f-cde8dedae6b7.jpg create mode 100644 storage/uploads/thumbnails/f2c85f8d-553b-4977-9520-c5498aadae24.png create mode 100644 storage/uploads/thumbnails/krvwyeqhkdtiixowljzja10c.jpg create mode 100644 storage/uploads/thumbnails/oq8850ehz04lugwwpoly5xkh.jpg create mode 100644 tests/functional/images/show.spec.ts diff --git a/.adonisjs/server/controllers.ts b/.adonisjs/server/controllers.ts new file mode 100644 index 0000000..57bd877 --- /dev/null +++ b/.adonisjs/server/controllers.ts @@ -0,0 +1,14 @@ +/** + * This file is automatically generated. + * DO NOT EDIT manually + */ + +export const controllers = { + Auth: () => import('#controllers/auth_controller'), + Categories: () => import('#controllers/categories_controller'), + Images: () => import('#controllers/images_controller'), + RestaurantMenuItems: () => import('#controllers/restaurant_menu_items_controller'), + RestaurantMenus: () => import('#controllers/restaurant_menus_controller'), + RoomReservations: () => import('#controllers/room_reservations_controller'), + Users: () => import('#controllers/users_controller'), +} diff --git a/.adonisjs/server/events.ts b/.adonisjs/server/events.ts new file mode 100644 index 0000000..a74e59b --- /dev/null +++ b/.adonisjs/server/events.ts @@ -0,0 +1,6 @@ +/** + * This file is automatically generated. + * DO NOT EDIT manually + */ + +export const events = {} diff --git a/.adonisjs/server/listeners.ts b/.adonisjs/server/listeners.ts new file mode 100644 index 0000000..05f35f8 --- /dev/null +++ b/.adonisjs/server/listeners.ts @@ -0,0 +1,6 @@ +/** + * This file is automatically generated. + * DO NOT EDIT manually + */ + +export const listeners = {} diff --git a/.adonisjs/server/routes.d.ts b/.adonisjs/server/routes.d.ts new file mode 100644 index 0000000..46b8c7e --- /dev/null +++ b/.adonisjs/server/routes.d.ts @@ -0,0 +1,102 @@ +import '@adonisjs/core/types/http' + +type ParamValue = string | number | bigint | boolean + +export type ScannedRoutes = { + ALL: { + 'auth.register': { paramsTuple?: []; params?: {} } + 'auth.login': { paramsTuple?: []; params?: {} } + 'auth.logout': { paramsTuple?: []; params?: {} } + 'auth.me': { paramsTuple?: []; params?: {} } + 'menu-items.getAll': { paramsTuple?: []; params?: {} } + 'menu-items.getOne': { paramsTuple?: []; params?: {} } + 'menu-items.create': { paramsTuple?: []; params?: {} } + 'menu-items.update': { paramsTuple?: []; params?: {} } + 'menu-items.delete': { paramsTuple?: []; params?: {} } + 'menu-items.attach': { paramsTuple?: []; params?: {} } + 'menus.getAll': { paramsTuple?: []; params?: {} } + 'menus.getOne': { paramsTuple?: []; params?: {} } + 'menus.create': { paramsTuple?: []; params?: {} } + 'menus.update': { paramsTuple?: []; params?: {} } + 'menus.delete': { paramsTuple?: []; params?: {} } + 'categories.getAll': { paramsTuple?: []; params?: {} } + 'categories.getOne': { paramsTuple?: []; params?: {} } + 'categories.create': { paramsTuple?: []; params?: {} } + 'categories.update': { paramsTuple?: []; params?: {} } + 'categories.delete': { paramsTuple?: []; params?: {} } + 'users.getAll': { paramsTuple?: []; params?: {} } + 'users.create': { paramsTuple?: []; params?: {} } + 'users.getOne': { paramsTuple?: []; params?: {} } + 'users.update': { paramsTuple?: []; params?: {} } + 'users.delete': { paramsTuple?: []; params?: {} } + 'images.list': { paramsTuple?: []; params?: {} } + 'images.upload': { paramsTuple?: []; params?: {} } + 'images.show': { paramsTuple: [ParamValue]; params: {'filename': ParamValue} } + 'rooms.list': { paramsTuple?: []; params?: {} } + 'rooms.create': { paramsTuple?: []; params?: {} } + 'rooms.update': { paramsTuple?: []; params?: {} } + 'rooms.delete': { paramsTuple?: []; params?: {} } + 'reservations.index': { paramsTuple?: []; params?: {} } + 'reservations.store': { paramsTuple?: []; params?: {} } + 'reservations.update': { paramsTuple?: []; params?: {} } + 'reservations.destroy': { paramsTuple?: []; params?: {} } + } + POST: { + 'auth.register': { paramsTuple?: []; params?: {} } + 'auth.login': { paramsTuple?: []; params?: {} } + 'menu-items.getOne': { paramsTuple?: []; params?: {} } + 'menu-items.create': { paramsTuple?: []; params?: {} } + 'menu-items.attach': { paramsTuple?: []; params?: {} } + 'menus.getOne': { paramsTuple?: []; params?: {} } + 'menus.create': { paramsTuple?: []; params?: {} } + 'categories.getOne': { paramsTuple?: []; params?: {} } + 'categories.create': { paramsTuple?: []; params?: {} } + 'users.create': { paramsTuple?: []; params?: {} } + 'users.getOne': { paramsTuple?: []; params?: {} } + 'images.upload': { paramsTuple?: []; params?: {} } + 'rooms.create': { paramsTuple?: []; params?: {} } + 'reservations.store': { paramsTuple?: []; params?: {} } + } + DELETE: { + 'auth.logout': { paramsTuple?: []; params?: {} } + 'menu-items.delete': { paramsTuple?: []; params?: {} } + 'menus.delete': { paramsTuple?: []; params?: {} } + 'categories.delete': { paramsTuple?: []; params?: {} } + 'users.delete': { paramsTuple?: []; params?: {} } + 'rooms.delete': { paramsTuple?: []; params?: {} } + 'reservations.destroy': { paramsTuple?: []; params?: {} } + } + GET: { + 'auth.me': { paramsTuple?: []; params?: {} } + 'menu-items.getAll': { paramsTuple?: []; params?: {} } + 'menus.getAll': { paramsTuple?: []; params?: {} } + 'categories.getAll': { paramsTuple?: []; params?: {} } + 'users.getAll': { paramsTuple?: []; params?: {} } + 'images.list': { paramsTuple?: []; params?: {} } + 'images.show': { paramsTuple: [ParamValue]; params: {'filename': ParamValue} } + 'rooms.list': { paramsTuple?: []; params?: {} } + 'reservations.index': { paramsTuple?: []; params?: {} } + } + HEAD: { + 'auth.me': { paramsTuple?: []; params?: {} } + 'menu-items.getAll': { paramsTuple?: []; params?: {} } + 'menus.getAll': { paramsTuple?: []; params?: {} } + 'categories.getAll': { paramsTuple?: []; params?: {} } + 'users.getAll': { paramsTuple?: []; params?: {} } + 'images.list': { paramsTuple?: []; params?: {} } + 'images.show': { paramsTuple: [ParamValue]; params: {'filename': ParamValue} } + 'rooms.list': { paramsTuple?: []; params?: {} } + 'reservations.index': { paramsTuple?: []; params?: {} } + } + PUT: { + 'menu-items.update': { paramsTuple?: []; params?: {} } + 'menus.update': { paramsTuple?: []; params?: {} } + 'categories.update': { paramsTuple?: []; params?: {} } + 'users.update': { paramsTuple?: []; params?: {} } + 'rooms.update': { paramsTuple?: []; params?: {} } + 'reservations.update': { paramsTuple?: []; params?: {} } + } +} +declare module '@adonisjs/core/types/http' { + export interface RoutesList extends ScannedRoutes {} +} \ No newline at end of file diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..4ed8b50 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +node_modules +build +tmp +.git +.gitignore +.env +.env.* +storage +*.log +.idea +.vscode +.junie +.agents +.codex +.adonisjs diff --git a/.env.example b/.env.example old mode 100644 new mode 100755 index eb2fa93..77c49ec --- a/.env.example +++ b/.env.example @@ -9,4 +9,5 @@ DB_PORT=5432 DB_USER=root DB_PASSWORD=root DB_DATABASE=app -LIMITER_STORE=database \ No newline at end of file +LIMITER_STORE=database +DRIVE_DISK=fs \ No newline at end of file diff --git a/.env.test b/.env.test deleted file mode 100644 index 5db6e5c..0000000 --- a/.env.test +++ /dev/null @@ -1,12 +0,0 @@ -TZ=UTC -PORT=3333 -HOST=localhost -LOG_LEVEL=info -APP_KEY= -NODE_ENV=test -DB_HOST=localhost -DB_PORT=5432 -DB_USER=paprika -DB_PASSWORD=Paprika_2025 -DB_DATABASE=paprika_test -LIMITER_STORE=database \ No newline at end of file diff --git a/.junie/memory/errors.md b/.junie/memory/errors.md new file mode 100644 index 0000000..e69de29 diff --git a/.junie/memory/feedback.md b/.junie/memory/feedback.md new file mode 100644 index 0000000..e69de29 diff --git a/.junie/memory/language.json b/.junie/memory/language.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/.junie/memory/language.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/.junie/memory/memory.version b/.junie/memory/memory.version new file mode 100644 index 0000000..f398a20 --- /dev/null +++ b/.junie/memory/memory.version @@ -0,0 +1 @@ +3.0 \ No newline at end of file diff --git a/.junie/memory/tasks.md b/.junie/memory/tasks.md new file mode 100644 index 0000000..e69de29 diff --git a/API_DOCS.md b/API_DOCS.md index 832bd3d..bde7be6 100644 --- a/API_DOCS.md +++ b/API_DOCS.md @@ -289,21 +289,31 @@ Deletes a category. ## Images +### List Images +Retrieves a list of all uploaded images. + +- **URL:** `/api/images` +- **Method:** `GET` +- **Authentication:** Required (Admin) +- **Response:** `[{"filename": "...", "url": "...", "thumbnailUrl": "..."}]` + ### Upload Image -Uploads an image for menu items or categories. Supported extensions: jpg, jpeg, png, webp, gif. Max size: 10mb. +Uploads an image for menu items or categories. Supported extensions: jpg, jpeg, png, webp, gif. Max size: 10mb. Automatically generates a 200px wide thumbnail. - **URL:** `/api/images/upload` - **Method:** `POST` - **Authentication:** Required (Admin) - **Body:** - `image` (file, required): The image file to upload. -- **Response:** `{"filename": "...", "url": "..."}` +- **Response:** `{"filename": "...", "url": "...", "thumbnailUrl": "..."}` ### Show Image Retrieves and displays a previously uploaded image. - **URL:** `/api/images/:filename` - **Method:** `GET` +- **Query Parameters:** + - `type` (string, optional): Use `thumbnail` to retrieve the 200px wide thumbnail. - **Response:** Image stream with correct MIME type. --- diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..9ef4cf9 --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,77 @@ +# Deployment Instructions for k3s (VPS) + +This document provides instructions on how to deploy the **Paprika API** to a VPS running k3s. + +## 1. Prepare the Container Image + +AdonisJS needs to be built and containerized. If you don't have a Dockerfile, you can use the one provided below. + +### Create a `Dockerfile` +```dockerfile +FROM node:22-alpine AS base + +# All dependencies stage +FROM base AS deps +WORKDIR /app +ADD package.json package-lock.json ./ +RUN npm ci + +# Production dependencies stage +FROM base AS production-deps +WORKDIR /app +ADD package.json package-lock.json ./ +RUN npm ci --omit=dev + +# Build stage +FROM base AS build +WORKDIR /app +COPY --from=deps /app/node_modules /app/node_modules +ADD . . +RUN node ace build + +# Production stage +FROM base AS production +ENV NODE_ENV=production +WORKDIR /app +COPY --from=production-deps /app/node_modules /app/node_modules +COPY --from=build /app/build /app +EXPOSE 3333 +CMD ["node", "bin/server.js"] +``` + +### Build and Push the image +Replace `` and `` with your actual registry (e.g., Docker Hub, GitHub Packages). + +```bash +docker build -t /:latest . +docker push /:latest +``` + +## 2. Configure the Kubernetes Manifest + +1. Open `k3s-deployment.yaml`. +2. Update the `APP_KEY` in the `Secret` section (you can use the one from your `.env`). +3. Update the `image` field in the `paprika-api` Deployment with your pushed image. +4. Update the `host` in the `Ingress` section to your VPS domain name. + +## 3. Deploy to k3s + +Connect to your VPS and run: + +```bash +kubectl apply -f k3s-deployment.yaml +``` + +## 4. Run Database Migrations + +After the pods are running, you need to run migrations inside the API container: + +```bash +kubectl exec -it deployment/paprika-api -- node ace migration:run --force +``` + +## 5. Verification + +- Check pods: `kubectl get pods` +- Check logs: `kubectl logs -f deployment/paprika-api` +- Access the API via your domain or VPS IP (if Ingress is configured). diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..641efc5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM node:24-alpine AS base + +# All dependencies stage +FROM base AS deps +WORKDIR /app +ADD package.json package-lock.json ./ +RUN npm ci + +# Production dependencies stage +FROM base AS production-deps +WORKDIR /app +ADD package.json package-lock.json ./ +RUN npm ci --omit=dev + +# Build stage +FROM base AS build +WORKDIR /app +COPY --from=deps /app/node_modules /app/node_modules +ADD . . +RUN node ace build + +# Production stage +FROM base AS production +ENV NODE_ENV=production +WORKDIR /app +COPY --from=production-deps /app/node_modules /app/node_modules +COPY --from=build /app/build /app +COPY menu.json /app/menu.json +RUN mkdir -p /app/logs +EXPOSE 3333 +CMD ["node", "bin/server.js"] diff --git a/ace.js b/ace.js index df02fb7..81068a6 100755 --- a/ace.js +++ b/ace.js @@ -19,7 +19,7 @@ /** * Register hook to process TypeScript files using ts-node */ -import 'ts-node-maintained/register/esm' +import '@poppinss/ts-exec' /** * Import ace console entrypoint diff --git a/adonisrc.ts b/adonisrc.ts index c5cad75..bfd7d2e 100755 --- a/adonisrc.ts +++ b/adonisrc.ts @@ -1,4 +1,5 @@ import { defineConfig } from '@adonisjs/core/app' +import { indexEntities } from '@adonisjs/core' export default defineConfig({ /* @@ -34,6 +35,7 @@ export default defineConfig({ () => import('@adonisjs/auth/auth_provider'), () => import('@adonisjs/limiter/limiter_provider'), () => import('@adonisjs/ally/ally_provider'), + () => import('@adonisjs/drive/drive_provider') ], /* @@ -58,16 +60,20 @@ export default defineConfig({ tests: { suites: [ { - files: ['tests/unit/**/*.spec(.ts|.js)'], + files: ['tests/unit/**/*.spec.{ts,js}'], name: 'unit', timeout: 2000, }, { - files: ['tests/functional/**/*.spec(.ts|.js)'], + files: ['tests/functional/**/*.spec.{ts,js}'], name: 'functional', timeout: 30000, }, ], forceExit: false, }, + + hooks: { + init: [indexEntities()], + }, }) diff --git a/app/controllers/images_controller.ts b/app/controllers/images_controller.ts index 0f18879..eb8f40d 100644 --- a/app/controllers/images_controller.ts +++ b/app/controllers/images_controller.ts @@ -1,10 +1,10 @@ import type { HttpContext } from '@adonisjs/core/http' -import app from '@adonisjs/core/services/app' +import drive from '@adonisjs/drive/services/main' import logger from '@adonisjs/core/services/logger' -import { cuid } from '@adonisjs/core/helpers' -import { createReadStream } from 'node:fs' -import { promises as fs } from 'node:fs' +import { randomUUID } from 'node:crypto' import { extname } from 'node:path' +import { Jimp } from 'jimp' +import fs from 'node:fs/promises' const allowedExtnames = ['jpg', 'jpeg', 'png', 'webp', 'gif'] @@ -32,36 +32,49 @@ export default class ImagesController { return response.badRequest({ message: message || 'Invalid image file' }) } - const uploadsDir = app.makePath('storage', 'uploads') - await fs.mkdir(uploadsDir, { recursive: true }) - const extension = image.extname || 'bin' - const filename = `${cuid()}.${extension}` - await image.move(uploadsDir, { name: filename, overwrite: false }) + const filename = `${randomUUID()}.${extension}` - if (image.state !== 'moved') { - logger.error('Image upload failed: %s', image.errors) - return response.internalServerError({ message: 'Image upload failed' }) + await drive.use().put(filename, await fs.readFile(image.tmpPath!)) + + // Generate thumbnail + try { + const jimpImage = await Jimp.read(image.tmpPath!) + const buffer = await jimpImage + .resize({ w: 200 }) // Resize to width 200px, maintain aspect ratio + .getBuffer('image/jpeg') + + await drive.use().put(`thumbnails/${filename}`, buffer) + } catch (error) { + logger.error('Thumbnail generation failed: %s', error.message) + // We don't fail the upload if thumbnail generation fails, but we log it } return response.ok({ filename, url: `/api/images/${filename}`, + thumbnailUrl: `/api/images/${filename}?type=thumbnail`, }) } - async show({ params, response }: HttpContext) { + async show({ params, request, response }: HttpContext) { const filename = String(params.filename || '') + const type = request.input('type') if (!filename || filename.includes('/') || filename.includes('\\')) { return response.badRequest({ message: 'Invalid image name' }) } - const filePath = app.makePath('storage', 'uploads', filename) + let key = filename - try { - await fs.access(filePath) - } catch { + if (type === 'thumbnail') { + const thumbnailKey = `thumbnails/${filename}` + if (await drive.use().exists(thumbnailKey)) { + key = thumbnailKey + } + } + + if (!(await drive.use().exists(key))) { return response.notFound({ message: 'Image not found' }) } @@ -69,6 +82,26 @@ export default class ImagesController { response.header('Content-Type', mimeType) response.header('Cache-Control', 'public, max-age=86400') - return response.stream(createReadStream(filePath)) + return response.stream(await drive.use().getStream(key)) + } + + async list() { + const { objects } = await drive.use().listAll('') + const images = [] + + for (const file of objects) { + if (file.isFile) { + images.push({ + filename: file.key, + url: `/api/images/${file.key}`, + thumbnailUrl: `/api/images/${file.key}?type=thumbnail`, + }) + } + } + + return images + } + async delete() { + } } diff --git a/app/controllers/room_reservations_controller.ts b/app/controllers/room_reservations_controller.ts index 834f155..0af618a 100644 --- a/app/controllers/room_reservations_controller.ts +++ b/app/controllers/room_reservations_controller.ts @@ -1,4 +1,5 @@ import type { HttpContext } from '@adonisjs/core/http' +import { DateTime } from 'luxon' import Room from '#models/room' import Reservation from '#models/reservation' import { @@ -81,7 +82,11 @@ export default class RoomReservationsController { async store({ request, response }: HttpContext) { try { const data = await request.validateUsing(createReservationValidator) - const reservation = await Reservation.create(data) + const reservation = await Reservation.create({ + ...data, + startsAt: DateTime.fromISO(data.startsAt), + endsAt: DateTime.fromISO(data.endsAt), + }) return reservation } catch (error) { logger.error('Reservation creation failed: %s', error) @@ -99,7 +104,11 @@ export default class RoomReservationsController { if (!reservation) { return response.notFound({ message: 'Reservation not found' }) } - reservation.merge(data) + reservation.merge({ + ...data, + startsAt: data.startsAt ? DateTime.fromISO(data.startsAt) : undefined, + endsAt: data.endsAt ? DateTime.fromISO(data.endsAt) : undefined, + }) await reservation.save() return reservation } catch (error) { diff --git a/app/middleware/auth_middleware.ts b/app/middleware/auth_middleware.ts index f5a2ba3..e4166bf 100755 --- a/app/middleware/auth_middleware.ts +++ b/app/middleware/auth_middleware.ts @@ -10,7 +10,7 @@ export default class AuthMiddleware { /** * The URL to redirect to, when authentication fails */ - redirectTo = '/login' + redirectTo = '/api/login' async handle( ctx: HttpContext, diff --git a/app/models/image.ts b/app/models/image.ts new file mode 100644 index 0000000..cf13bf8 --- /dev/null +++ b/app/models/image.ts @@ -0,0 +1,22 @@ +import { DateTime } from 'luxon' +import { BaseModel, column } from '@adonisjs/lucid/orm' + +export default class Image extends BaseModel { + @column({ isPrimary: true }) + declare id: number + + @column() + declare filePath: string + + @column() + declare description: string | null + + @column() + declare isVisible: boolean + + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime +} diff --git a/config/app.ts b/config/app.ts index 1f6ec6b..1163a29 100755 --- a/config/app.ts +++ b/config/app.ts @@ -1,17 +1,5 @@ -import env from '#start/env' -import app from '@adonisjs/core/services/app' -import { Secret } from '@adonisjs/core/helpers' import { defineConfig } from '@adonisjs/core/http' -/** - * The app key is used for encrypting cookies, generating signed URLs, - * and by the "encryption" module. - * - * The encryption module will fail to decrypt data if the key is lost or - * changed. Therefore it is recommended to keep the app key secure. - */ -export const appKey = new Secret(env.get('APP_KEY')) - /** * The configuration settings used by the HTTP server */ diff --git a/config/cors.ts b/config/cors.ts index 328934b..a7610f5 100755 --- a/config/cors.ts +++ b/config/cors.ts @@ -7,11 +7,22 @@ import { defineConfig } from '@adonisjs/cors' * https://docs.adonisjs.com/guides/security/cors */ const corsConfig = defineConfig({ - enabled: true, - origin: true, + origin: (requestOrigin) => { + /** + * Allow localhost on any port during development. + */ + if ( + requestOrigin.includes('localhost') || + requestOrigin.includes('0.0.0.0') || + requestOrigin.includes('127.0.0.1') || + requestOrigin.includes('::1')) { + return true + } + return false + }, + methods: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'], headers: true, - exposeHeaders: [], credentials: true, maxAge: 90, }) diff --git a/config/drive.ts b/config/drive.ts new file mode 100644 index 0000000..cb67f64 --- /dev/null +++ b/config/drive.ts @@ -0,0 +1,25 @@ +import env from '#start/env' +import app from '@adonisjs/core/services/app' +import { defineConfig, services } from '@adonisjs/drive' + +const driveConfig = defineConfig({ + default: env.get('DRIVE_DISK'), + + /** + * The services object can be used to configure multiple file system + * services each using the same or a different driver. + */ + services: { + fs: services.fs({ + location: app.makePath('storage/uploads'), + serveFiles: false, + visibility: 'public', + }), + }, +}) + +export default driveConfig + +declare module '@adonisjs/drive/types' { + export interface DriveDisks extends InferDriveDisks {} +} diff --git a/config/encryption.ts b/config/encryption.ts new file mode 100644 index 0000000..d2dffc1 --- /dev/null +++ b/config/encryption.ts @@ -0,0 +1,11 @@ +import env from '#start/env' +import { defineConfig, drivers } from '@adonisjs/core/encryption' + +export default defineConfig({ + default: 'legacy', + list: { + legacy: drivers.legacy({ + keys: [env.get('APP_KEY')], + }), + }, +}) diff --git a/database/migrations/1778056304396_create_images_table.ts b/database/migrations/1778056304396_create_images_table.ts new file mode 100644 index 0000000..2933575 --- /dev/null +++ b/database/migrations/1778056304396_create_images_table.ts @@ -0,0 +1,21 @@ +import { BaseSchema } from '@adonisjs/lucid/schema' + +export default class extends BaseSchema { + protected tableName = 'images' + + async up() { + this.schema.createTable(this.tableName, (table) => { + table.increments('id') + table.string('file_path').notNullable() + table.string('description').nullable() + table.boolean('is_visible').defaultTo(true) + + table.timestamp('created_at') + table.timestamp('updated_at') + }) + } + + async down() { + this.schema.dropTable(this.tableName) + } +} diff --git a/database/schema.ts b/database/schema.ts new file mode 100644 index 0000000..e1328b0 --- /dev/null +++ b/database/schema.ts @@ -0,0 +1,200 @@ +/** + * This file is automatically generated + * DO NOT EDIT manually + * Run "node ace migration:run" command to re-generate this file + */ + +import { BaseModel, column } from '@adonisjs/lucid/orm' +import { DateTime } from 'luxon' + +export class AuthAccessTokenSchema extends BaseModel { + static $columns = ['abilities', 'createdAt', 'expiresAt', 'hash', 'id', 'lastUsedAt', 'name', 'tokenableId', 'type', 'updatedAt'] as const + $columns = AuthAccessTokenSchema.$columns + @column() + declare abilities: string + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime | null + @column.dateTime() + declare expiresAt: DateTime | null + @column() + declare hash: string + @column({ isPrimary: true }) + declare id: number + @column.dateTime() + declare lastUsedAt: DateTime | null + @column() + declare name: string | null + @column() + declare tokenableId: number + @column() + declare type: string + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime | null +} + +export class CategorySchema extends BaseModel { + static $columns = ['createdAt', 'id', 'name', 'nameEn', 'nameHu', 'slug', 'updatedAt'] as const + $columns = CategorySchema.$columns + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + @column({ isPrimary: true }) + declare id: number + @column() + declare name: string + @column() + declare nameEn: string | null + @column() + declare nameHu: string | null + @column() + declare slug: string + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime +} + +export class ImageSchema extends BaseModel { + static $columns = ['createdAt', 'description', 'filePath', 'id', 'isVisible', 'updatedAt'] as const + $columns = ImageSchema.$columns + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime | null + @column() + declare description: string | null + @column() + declare filePath: string + @column({ isPrimary: true }) + declare id: number + @column() + declare isVisible: boolean | null + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime | null +} + +export class MenuItemMenuSchema extends BaseModel { + static $columns = ['id', 'restaurantMenuId', 'restaurantMenuItemId'] as const + $columns = MenuItemMenuSchema.$columns + @column({ isPrimary: true }) + declare id: number + @column() + declare restaurantMenuId: number + @column() + declare restaurantMenuItemId: number +} + +export class RateLimitSchema extends BaseModel { + static $columns = ['expire', 'key', 'points'] as const + $columns = RateLimitSchema.$columns + @column() + declare expire: bigint | number | null + @column({ isPrimary: true }) + declare key: string + @column() + declare points: number +} + +export class ReservationSchema extends BaseModel { + static $columns = ['createdAt', 'customerName', 'customerPhone', 'endsAt', 'guestsCount', 'id', 'notes', 'roomId', 'startsAt', 'status', 'updatedAt'] as const + $columns = ReservationSchema.$columns + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime | null + @column() + declare customerName: string + @column() + declare customerPhone: string + @column.dateTime() + declare endsAt: DateTime + @column() + declare guestsCount: number + @column({ isPrimary: true }) + declare id: number + @column() + declare notes: string | null + @column() + declare roomId: number | null + @column.dateTime() + declare startsAt: DateTime + @column() + declare status: string | null + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime | null +} + +export class RestaurantMenuItemSchema extends BaseModel { + static $columns = ['categoryId', 'createdAt', 'description', 'descriptionEn', 'descriptionHu', 'id', 'name', 'nameEn', 'nameHu', 'priceLarge', 'priceSmall', 'updatedAt'] as const + $columns = RestaurantMenuItemSchema.$columns + @column() + declare categoryId: number | null + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + @column() + declare description: string | null + @column() + declare descriptionEn: string | null + @column() + declare descriptionHu: string | null + @column({ isPrimary: true }) + declare id: number + @column() + declare name: string + @column() + declare nameEn: string | null + @column() + declare nameHu: string | null + @column() + declare priceLarge: string + @column() + declare priceSmall: string + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime +} + +export class RestaurantMenuSchema extends BaseModel { + static $columns = ['createdAt', 'id', 'name', 'nameEn', 'nameHu', 'updatedAt'] as const + $columns = RestaurantMenuSchema.$columns + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + @column({ isPrimary: true }) + declare id: number + @column() + declare name: string + @column() + declare nameEn: string | null + @column() + declare nameHu: string | null + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime +} + +export class RoomSchema extends BaseModel { + static $columns = ['capacity', 'createdAt', 'description', 'id', 'name', 'updatedAt'] as const + $columns = RoomSchema.$columns + @column() + declare capacity: number + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime | null + @column() + declare description: string | null + @column({ isPrimary: true }) + declare id: number + @column() + declare name: string + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime | null +} + +export class UserSchema extends BaseModel { + static $columns = ['createdAt', 'email', 'fullName', 'id', 'password', 'role', 'updatedAt'] as const + $columns = UserSchema.$columns + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + @column() + declare email: string + @column() + declare fullName: string + @column({ isPrimary: true }) + declare id: number + @column({ serializeAs: null }) + declare password: string + @column() + declare role: string + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime +} diff --git a/database/seeders/restaurant_menu_seeder.ts b/database/seeders/restaurant_menu_seeder.ts new file mode 100644 index 0000000..c1f7c79 --- /dev/null +++ b/database/seeders/restaurant_menu_seeder.ts @@ -0,0 +1,7 @@ +import { BaseSeeder } from '@adonisjs/lucid/seeders' + +export default class extends BaseSeeder { + async run() { + // Write your database queries inside the run method + } +} \ No newline at end of file diff --git a/database/seeders/room_seeder.ts b/database/seeders/room_seeder.ts index c451561..d715ba1 100644 --- a/database/seeders/room_seeder.ts +++ b/database/seeders/room_seeder.ts @@ -8,7 +8,7 @@ export default class extends BaseSeeder { { name: 'Kisterem', capacity: 20, - description: 'Cozy small room for private gatherings.', + description: 'Kis terem, kisebb rendezvényekre', } ) @@ -17,7 +17,7 @@ export default class extends BaseSeeder { { name: 'Nagyterem', capacity: 50, - description: 'Large hall for big events and weddings.', + description: 'Esküvőkre, lagzikra, céges rendezvényekre', } ) @@ -26,7 +26,7 @@ export default class extends BaseSeeder { { name: 'Terasz', capacity: 30, - description: 'Outdoor terrace with a view.', + description: 'Külső terasz', } ) } diff --git a/k3s-deployment.yaml b/k3s-deployment.yaml new file mode 100644 index 0000000..c15541d --- /dev/null +++ b/k3s-deployment.yaml @@ -0,0 +1,196 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: paprika-api +--- +apiVersion: v1 +kind: Secret +metadata: + name: api-secrets + namespace: paprika-api +type: Opaque +stringData: + APP_KEY: rIkZNEpVHFAyKJSPq3t8aue0NzaIgF83 # Change this if needed + DB_PASSWORD: Paprika_2025 + DB_USER: paprika + DB_DATABASE: paprika +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-pvc + namespace: paprika-api +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: paprika-uploads-pvc + namespace: paprika-api +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postgres + namespace: paprika-api +spec: + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:16-alpine + ports: + - containerPort: 5432 + env: + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: api-secrets + key: DB_USER + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: api-secrets + key: DB_PASSWORD + - name: POSTGRES_DB + valueFrom: + secretKeyRef: + name: api-secrets + key: DB_DATABASE + volumeMounts: + - name: postgres-storage + mountPath: /var/lib/postgresql/data + volumes: + - name: postgres-storage + persistentVolumeClaim: + claimName: postgres-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: postgres + namespace: paprika-api +spec: + selector: + app: postgres + ports: + - port: 5432 + targetPort: 5432 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: paprika-api + namespace: paprika-api +spec: + replicas: 1 + selector: + matchLabels: + app: paprika-api + template: + metadata: + labels: + app: paprika-api + spec: + containers: + - name: paprika-api + image: paprika-api:latest # Update with your image + imagePullPolicy: Never + ports: + - containerPort: 3333 + env: + - name: NODE_ENV + value: production + - name: APP_KEY + valueFrom: + secretKeyRef: + name: api-secrets + key: APP_KEY + - name: DB_HOST + value: postgres + - name: DB_PORT + value: "5432" + - name: DB_USER + valueFrom: + secretKeyRef: + name: api-secrets + key: DB_USER + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: api-secrets + key: DB_PASSWORD + - name: DB_DATABASE + valueFrom: + secretKeyRef: + name: api-secrets + key: DB_DATABASE + - name: PORT + value: "3333" + - name: HOST + value: 0.0.0.0 + - name: LOG_LEVEL + value: info + - name: LIMITER_STORE + value: database + - name: TZ + value: UTC + - name: DRIVE_DISK + value: fs + volumeMounts: + - name: uploads-storage + mountPath: /app/storage/uploads + volumes: + - name: uploads-storage + persistentVolumeClaim: + claimName: paprika-uploads-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: paprika-api + namespace: paprika-api +spec: + selector: + app: paprika-api + ports: + - port: 80 + targetPort: 3333 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: paprika-api-ingress + namespace: paprika-api + annotations: + kubernetes.io/ingress.class: traefik # k3s uses traefik by default +spec: + rules: + - host: dave.dev # Update with your domain + http: + paths: + - path: /api + pathType: Prefix + backend: + service: + name: paprika-api + port: + number: 80 diff --git a/package-lock.json b/package-lock.json old mode 100755 new mode 100644 index 9d16287..274ae1b --- a/package-lock.json +++ b/package-lock.json @@ -9,148 +9,194 @@ "version": "0.0.0", "license": "UNLICENSED", "dependencies": { - "@adonisjs/ally": "^5.0.0", - "@adonisjs/auth": "^9.3.1", - "@adonisjs/core": "^6.17.2", - "@adonisjs/cors": "^2.2.1", - "@adonisjs/limiter": "^2.4.0", - "@adonisjs/lucid": "^21.6.0", - "@vinejs/vine": "^3.0.0", + "@adonisjs/ally": "^6.3.0", + "@adonisjs/auth": "^10.1.0", + "@adonisjs/core": "^7.3.2", + "@adonisjs/cors": "^3.0.0", + "@adonisjs/drive": "^4.0.0", + "@adonisjs/limiter": "^3.0.1", + "@adonisjs/lucid": "^22.4.2", + "@vinejs/vine": "^4.4.0", + "jimp": "^1.6.1", "luxon": "^3.6.1", + "node-addon-api": "^8.7.0", "pg": "^8.14.1", "reflect-metadata": "^0.2.2" }, "devDependencies": { - "@adonisjs/assembler": "^7.8.2", - "@adonisjs/eslint-config": "^2.0.0", + "@adonisjs/assembler": "^8.4.0", + "@adonisjs/eslint-config": "^3.0.0", "@adonisjs/prettier-config": "^1.4.0", - "@adonisjs/tsconfig": "^1.4.0", + "@adonisjs/tsconfig": "^2.0.0", "@japa/api-client": "^3.1.0", "@japa/assert": "^4.0.1", - "@japa/plugin-adonisjs": "^4.0.0", + "@japa/plugin-adonisjs": "^5.2.0", "@japa/runner": "^4.2.0", - "@swc/core": "1.10.7", + "@poppinss/ts-exec": "^1.4.4", "@types/luxon": "^3.6.2", "@types/node": "^22.13.2", "eslint": "^9.20.1", "hot-hook": "^0.4.0", "pino-pretty": "^13.0.0", - "prettier": "^3.5.0", - "ts-node-maintained": "^10.9.5", - "typescript": "~5.7" + "prettier": "^3.8.3", + "typescript": "~5.7", + "youch": "^4.1.1" } }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, "node_modules/@adonisjs/ace": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-13.3.0.tgz", - "integrity": "sha512-68dveDFd766p69cBvK/MtOrOP0+YKYLeHspa9KLEWcWk9suPf3pbGkHQ2pwDnvLJxBPHk4932KbbSSzzpGNZGw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-14.1.0.tgz", + "integrity": "sha512-8N8z1YKePBiXz7wLxHFz/HSqjCRSL/9Vzs4XQt8gk8G17u4PXwNncWt0vSgYEcDrvPAt+QOavY1vMeKOOWe29w==", "license": "MIT", "dependencies": { - "@poppinss/cliui": "^6.4.1", - "@poppinss/hooks": "^7.2.4", - "@poppinss/macroable": "^1.0.3", - "@poppinss/prompts": "^3.1.3", - "@poppinss/utils": "^6.8.3", + "@poppinss/cliui": "^6.8.0", + "@poppinss/hooks": "^7.3.0", + "@poppinss/macroable": "^1.1.2", + "@poppinss/prompts": "^3.1.6", + "@poppinss/utils": "^7.0.1", "fastest-levenshtein": "^1.0.16", - "jsonschema": "^1.4.1", - "string-width": "^7.2.0", - "yargs-parser": "^21.1.1", - "youch": "^3.3.4", - "youch-terminal": "^2.2.3" + "jsonschema": "^1.5.0", + "string-width": "^8.2.0", + "yargs-parser": "^22.0.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" + }, + "peerDependencies": { + "youch": "^4.1.0-beta.11 || ^4.1.0" } }, "node_modules/@adonisjs/ally": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@adonisjs/ally/-/ally-5.1.1.tgz", - "integrity": "sha512-Uu+g5y7jnmMP0iXhPYTx9caJnovp+CTqxDN6XpyuLQGVZjNr9fqbPeaBVs1/jTAVSAtpv4UrHsb+827XXd24Jw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/ally/-/ally-6.3.0.tgz", + "integrity": "sha512-yxw9mpQHexRwKx3qpR651yn/a+gYYHne0Cc6fjMxVQ8rOaBZS2e1025wmuhHg7gProLCv8lpSbqF7I9Hk7qWAQ==", "license": "MIT", "dependencies": { - "@poppinss/oauth-client": "^7.0.1", - "@poppinss/utils": "^6.10.1" + "@poppinss/oauth-client": "^7.2.0" }, "engines": { "node": ">=20.6.0" }, "peerDependencies": { - "@adonisjs/core": "^6.2.0" + "@adonisjs/assembler": "^8.0.0", + "@adonisjs/core": "^7.0.0-next.8 || ^7.0.0", + "@adonisjs/i18n": "^3.0.0", + "@adonisjs/inertia": "^4.2.0", + "@adonisjs/session": "^8.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@adonisjs/i18n": { + "optional": true + }, + "@adonisjs/inertia": { + "optional": true + }, + "@adonisjs/session": { + "optional": true + } } }, "node_modules/@adonisjs/application": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-8.3.1.tgz", - "integrity": "sha512-hfZBgZ23BQAXvoSHDkc/I0hTSXyFVxypNqHPQ/WCk4VoWlBVWVgGaGnHLvIGhrZ3RMvyoC5NBgC0PR5G+/fGSw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-9.0.0.tgz", + "integrity": "sha512-iQpq/JRJsnrqOMHfu72CYjmlkH5FwT28DhUKEOjktccmFh8OLdVZ2Sieb8b2/qNv4c+w8Yo7keOGEzOYUrU+kA==", "license": "MIT", "dependencies": { - "@poppinss/hooks": "^7.2.3", - "@poppinss/macroable": "^1.0.2", - "@poppinss/utils": "^6.7.3", + "@poppinss/hooks": "^7.3.0", + "@poppinss/macroable": "^1.1.0", + "@poppinss/utils": "^7.0.0", "glob-parent": "^6.0.2", - "tempura": "^0.4.0" + "tempura": "^0.4.1" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/config": "^5.0.0", - "@adonisjs/fold": "^10.0.0" + "@adonisjs/assembler": "^8.0.0-next.23 || ^8.0.0", + "@adonisjs/config": "^6.1.0-next.0 || ^6.0.0", + "@adonisjs/fold": "^11.0.0-next.3 || ^11.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + } } }, "node_modules/@adonisjs/assembler": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-7.8.2.tgz", - "integrity": "sha512-csLdMW58cwuRjdPEDE0dqwHZCT5snCh+1sQ19HPnQ/BLKPPAvQdDRdw0atoC8LVmouB8ghXVHp3SxnVxlvXYWQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-8.4.0.tgz", + "integrity": "sha512-Nxi6UU2fd/Wq8iLb+FwicK+7ePyvZcmtbJaT25RhGbgSZ2tgbxzaI7YF4TbaLKDIsF48DOcTP0dTfUIcgjBchw==", "devOptional": true, "license": "MIT", "dependencies": { - "@adonisjs/env": "^6.1.0", - "@antfu/install-pkg": "^0.4.1", - "@poppinss/chokidar-ts": "^4.1.4", - "@poppinss/cliui": "^6.4.1", - "@poppinss/hooks": "^7.2.3", - "@poppinss/utils": "^6.7.3", - "cpy": "^11.1.0", - "dedent": "^1.5.3", - "execa": "^9.3.1", - "fast-glob": "^3.3.2", - "get-port": "^7.1.0", + "@adonisjs/env": "^7.0.0", + "@antfu/install-pkg": "^1.1.0", + "@ast-grep/napi": "^0.42.0", + "@poppinss/cliui": "^6.8.1", + "@poppinss/hooks": "^7.3.0", + "@poppinss/utils": "^7.0.1", + "chokidar": "^5.0.0", + "dedent": "^1.7.2", + "execa": "^9.6.1", + "fast-glob": "^3.3.3", + "fdir": "^6.5.0", + "get-port": "^7.2.0", + "get-tsconfig": "^4.13.7", + "import-meta-resolve": "^4.2.0", "junk": "^4.0.1", - "picomatch": "^4.0.2", + "open": "^11.0.0", + "parse-imports": "^3.0.0", + "picomatch": "^4.0.4", "pretty-hrtime": "^1.0.3", - "slash": "^5.1.0", - "ts-morph": "^23.0.0" + "tmp-cache": "^1.1.0", + "ts-morph": "^27.0.2" }, "engines": { - "node": ">=20.6.0" + "node": ">=24.0.0" }, "peerDependencies": { - "typescript": "^4.0.0 || ^5.0.0" + "typescript": "^5.0.0 || ^6.0.0" } }, "node_modules/@adonisjs/auth": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-9.4.0.tgz", - "integrity": "sha512-dzvnJRKY+RcKUXCRT6ebnlGV0wAfejTSGqS0XbgjB97r6Pww14MhsY89EBr1nSydQzvjdbtIR3EDGbU97BVmbQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-10.1.0.tgz", + "integrity": "sha512-H92C4HLWBpvxtQrgnsdWdWfoGu2bM/j+nyk/tHmpxH9ETkNOH0z3dRfEebLJI63vtTDpRp5cwiI0bzn32gUQiA==", "license": "MIT", "dependencies": { - "@adonisjs/presets": "^2.6.4", - "@poppinss/utils": "^6.9.2", + "@adonisjs/presets": "^3.0.0", "basic-auth": "^2.0.1" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/core": "^6.11.0", - "@adonisjs/lucid": "^20.0.0 || ^21.0.1", - "@adonisjs/session": "^7.4.1", - "@japa/api-client": "^2.0.3 || ^3.0.0", - "@japa/browser-client": "^2.0.3", - "@japa/plugin-adonisjs": "^3.0.1 || ^4.0.0" + "@adonisjs/assembler": "^8.0.0-next.26 || ^8.0.0", + "@adonisjs/core": "^7.0.0-next.16 || ^7.0.0", + "@adonisjs/i18n": "^3.0.0-next.2 || ^3.0.0", + "@adonisjs/lucid": "^22.0.0-next.1 || ^22.0.0", + "@adonisjs/session": "^8.0.0-next.1 || ^8.0.0", + "@japa/api-client": "^3.1.1", + "@japa/browser-client": "^2.2.0", + "@japa/plugin-adonisjs": "^5.1.0-next.0 || ^5.1.0" }, "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@adonisjs/i18n": { + "optional": true + }, "@adonisjs/lucid": { "optional": true }, @@ -169,89 +215,85 @@ } }, "node_modules/@adonisjs/bodyparser": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-10.1.2.tgz", - "integrity": "sha512-Lp419XmpMOq878Ee9V1Iqu2vGHEFBMUrUK3A3Fz3/dCP70E40esRf7wzTvRe+YZfXqQLaz1XCE0xfy3lj9wA9Q==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-11.0.1.tgz", + "integrity": "sha512-RUpkRRSvCSMLmVJcYUyaAwC9Z1tWlThBvVGiIU5bkWwwe5CcbG2f9sifzod04B+hcgJ4xWSs+FF/WNdbwWFwhQ==", "license": "MIT", "dependencies": { - "@paralleldrive/cuid2": "^2.2.2", "@poppinss/macroable": "^1.1.0", - "@poppinss/multiparty": "^2.0.1", - "@poppinss/utils": "^6.10.1", - "@types/qs": "^6.14.0", - "bytes": "^3.1.2", - "file-type": "^21.1.1", + "@poppinss/middleware": "^3.2.7", + "@poppinss/multiparty": "^3.0.0", + "@poppinss/qs": "^6.15.0", + "@poppinss/utils": "^7.0.0", + "file-type": "^21.3.0", "inflation": "^2.1.0", "media-typer": "^1.1.0", - "qs": "^6.14.0", - "raw-body": "^3.0.1" + "raw-body": "^3.0.2" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/http-server": "^7.4.0" + "@adonisjs/http-server": "^8.0.0-next.17 || ^8.0.0" } }, "node_modules/@adonisjs/config": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-5.0.2.tgz", - "integrity": "sha512-NXjFqDHNGRTZ1EnA4zr20GFEt7qw/JvZ4ZV8/PzFyVc7dPoFprpoyE3bw7kmlKHhcQdBbF7YXCGB4q+HQUnqiQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-6.1.0.tgz", + "integrity": "sha512-YVDRL8xHCtM6iMnAefOBaz6iXVpojwBPDQWPKxnVSucycYeNGrGitJiLy+cGaeAU7Gjm8al9SJRJt3rRPr5PKg==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.7.3" + "@poppinss/utils": "^7.0.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" } }, "node_modules/@adonisjs/core": { - "version": "6.17.2", - "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.17.2.tgz", - "integrity": "sha512-POT5COID8Z3j37+Dd7Y1EfG01Q6+HPY/tGcSb0Y97W2VIPkFjqcW2ooTE4wFT09u7coNohtXJa19a0feMz9ncw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-7.3.2.tgz", + "integrity": "sha512-rwF9Cdw2CCFODeWUfCb4wjeuQOZIy7Bma1NYA769kVCXyMYoA/QIp86V8PmpwBabdoK4M+JitXgWwAzB9eInGg==", "license": "MIT", "dependencies": { - "@adonisjs/ace": "^13.3.0", - "@adonisjs/application": "^8.3.1", - "@adonisjs/bodyparser": "^10.0.3", - "@adonisjs/config": "^5.0.2", - "@adonisjs/encryption": "^6.0.2", - "@adonisjs/env": "^6.1.1", - "@adonisjs/events": "^9.0.2", - "@adonisjs/fold": "^10.1.3", - "@adonisjs/hash": "^9.0.5", - "@adonisjs/health": "^2.0.0", - "@adonisjs/http-server": "^7.4.0", - "@adonisjs/logger": "^6.0.5", - "@adonisjs/repl": "^4.1.0", - "@antfu/install-pkg": "^1.0.0", - "@paralleldrive/cuid2": "^2.2.2", - "@poppinss/colors": "^4.1.4", - "@poppinss/dumper": "^0.6.2", - "@poppinss/macroable": "^1.0.4", - "@poppinss/utils": "^6.9.2", - "@sindresorhus/is": "^7.0.1", + "@adonisjs/ace": "^14.1.0", + "@adonisjs/application": "^9.0.0", + "@adonisjs/bodyparser": "^11.0.1", + "@adonisjs/config": "^6.1.0", + "@adonisjs/env": "^7.0.0", + "@adonisjs/events": "^10.2.0", + "@adonisjs/fold": "^11.0.0", + "@adonisjs/hash": "^10.1.0", + "@adonisjs/health": "^3.1.0", + "@adonisjs/http-server": "^8.2.0", + "@adonisjs/http-transformers": "^2.3.1", + "@adonisjs/logger": "^7.1.1", + "@adonisjs/repl": "^5.0.0", + "@boringnode/encryption": "^1.0.0", + "@poppinss/colors": "^4.1.6", + "@poppinss/dumper": "^0.7.0", + "@poppinss/macroable": "^1.1.2", + "@poppinss/utils": "^7.0.1", + "@sindresorhus/is": "^8.0.0", "@types/he": "^1.2.3", "error-stack-parser-es": "^1.0.5", "he": "^1.2.0", - "parse-imports": "^2.2.1", "pretty-hrtime": "^1.0.3", - "string-width": "^7.2.0", - "youch": "^3.3.4", - "youch-terminal": "^2.2.3" + "string-width": "^8.2.0" }, "bin": { "adonis-kit": "build/toolkit/main.js" }, "engines": { - "node": ">=20.6.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/assembler": "^7.8.0", - "@vinejs/vine": "^2.1.0 || ^3.0.0", - "argon2": "^0.31.2 || ^0.41.0", - "bcrypt": "^5.1.1", - "edge.js": "^6.2.0" + "@adonisjs/assembler": "^8.0.0-next.23 || ^8.0.0", + "@vinejs/vine": "^4.0.0", + "argon2": "^0.44.0", + "bcrypt": "^6.0.0", + "edge.js": "^6.2.0", + "pino-pretty": "^13.1.3", + "youch": "^4.1.0-beta.13 || ^4.1.0" }, "peerDependenciesMeta": { "@adonisjs/assembler": { @@ -268,153 +310,179 @@ }, "edge.js": { "optional": true + }, + "pino-pretty": { + "optional": true + }, + "youch": { + "optional": true } } }, - "node_modules/@adonisjs/core/node_modules/@antfu/install-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", - "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", - "license": "MIT", - "dependencies": { - "package-manager-detector": "^0.2.8", - "tinyexec": "^0.3.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/@adonisjs/cors": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@adonisjs/cors/-/cors-2.2.1.tgz", - "integrity": "sha512-qnrSG8ylpgTeZBOYEN3yXxY0PBUEg1KGDhgn9VKVFGxLKT+o9GGVOSZxUK3wG341B1zB9w5vuZN1z4M0Jitb6g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/cors/-/cors-3.0.0.tgz", + "integrity": "sha512-S3LS+zZ2SziwVvilnkKg4DjmU+df1xqdZRDSQjUKJr5hYEOVAlnci0kHTiz2szxB+QiseQXr/XfN/D5ooMMlYQ==", "license": "MIT", "engines": { "node": ">=18.16.0" }, "peerDependencies": { - "@adonisjs/core": "^6.2.0" + "@adonisjs/assembler": "^8.0.0-next.7 || ^8.0.0", + "@adonisjs/core": "^7.0.0-next.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + } } }, - "node_modules/@adonisjs/encryption": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-6.0.2.tgz", - "integrity": "sha512-37XqVPsZi6zXMbC0Me1/qlcTP0uE+KAtYOFx7D7Tvtz377NL/6gqxqgpW/BopgOSD+CVDXjzO/Wx3M2UrbkJRQ==", + "node_modules/@adonisjs/drive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/drive/-/drive-4.0.0.tgz", + "integrity": "sha512-dJPmTKmYba05/e6x807VjL9m5JT56bZKqAgFknkS96kUSH52i9M+InsZTwUQ87cW9UQ1tED8ts++LgsyE3EkEQ==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.7.3" + "flydrive": "^2.0.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" + }, + "peerDependencies": { + "@adonisjs/assembler": "^8.0.0-next.7 || ^8.0.0", + "@adonisjs/core": "^7.0.0-next.0 || ^7.0.0", + "@aws-sdk/client-s3": "^3.884.0", + "@aws-sdk/s3-request-presigner": "^3.884.0", + "@google-cloud/storage": "^7.17.0", + "edge.js": "^6.4.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@aws-sdk/client-s3": { + "optional": true + }, + "@aws-sdk/s3-request-presigner": { + "optional": true + }, + "@google-cloud/storage": { + "optional": true + }, + "edge.js": { + "optional": true + } } }, "node_modules/@adonisjs/env": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-6.2.0.tgz", - "integrity": "sha512-DZ7zQ4sBhzWftjU/SxJ7BstimrEiByCvmtAcMNDpDjOtJnR50172PRz1X7KjM3EqjCVrB19izzRVx/rmpCRPOA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-7.0.0.tgz", + "integrity": "sha512-9lSGONI4B1E7LxyVZiUd1yCH9BOri4Ybp4b9x3ojT9AkKfYwqvj4S2USIvFAlkE7eHUC2WMvPgMLX17342Y3ww==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.9.2", - "@poppinss/validator-lite": "^2.1.0", - "dotenv": "^16.4.7", + "@poppinss/utils": "^7.0.0", + "@poppinss/validator-lite": "^2.1.2", "split-lines": "^3.0.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" } }, "node_modules/@adonisjs/eslint-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@adonisjs/eslint-config/-/eslint-config-2.0.0.tgz", - "integrity": "sha512-u7xxPmYQ66cmVet6OjOR9yQsHC7h/ZhDXPb4w0UACsXKfKxL4VRsiYsI+/E5xwsfB3dmT/yWO6UrTx7auCLSJg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/eslint-config/-/eslint-config-3.0.0.tgz", + "integrity": "sha512-JA2EUNDiX3PUbE/FLzgZgurCL/jsu5ExN24MKJWMU861Po4xSQgKz4B8NtE5qALBUALO4lGucSOcJ7x3j/nH2w==", "dev": true, "license": "MIT", "dependencies": { - "@adonisjs/eslint-plugin": "^2.0.0-beta.5", - "@stylistic/eslint-plugin-ts": "^2.7.2", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-unicorn": "^55.0.0", - "typescript-eslint": "^8.3.0" + "@adonisjs/eslint-plugin": "^2.2.2", + "@stylistic/eslint-plugin": "^5.8.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-unicorn": "^63.0.0", + "typescript-eslint": "^8.56.0" }, "peerDependencies": { - "eslint": "^9.9.0", - "prettier": "^3.3.3" + "eslint": "^9.9.0 || ^10.0.0", + "prettier": "^3.8.1" } }, "node_modules/@adonisjs/eslint-plugin": { - "version": "2.0.0-beta.5", - "resolved": "https://registry.npmjs.org/@adonisjs/eslint-plugin/-/eslint-plugin-2.0.0-beta.5.tgz", - "integrity": "sha512-zNXFq71B7o0ZJ9vMnd+4peSMQrRHBJns4MUDmDAQaTDlOMWRomU5hio2elRxRDTQUl2bJvw/yhfydreew/75xA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@adonisjs/eslint-plugin/-/eslint-plugin-2.2.2.tgz", + "integrity": "sha512-OAIrljEpbhyikG+BQ8r7195GoRDPmMEBUfSfr6ajM6IPtQMPAb/oKzeXF8XTy2CxupUoGhMd2n8+sx/pgL1m4g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.3.0" + "@typescript-eslint/utils": "^8.56.0", + "micromatch": "^4.0.8", + "read-package-up": "^12.0.0" }, "engines": { "node": ">=20.6.0" }, "peerDependencies": { - "eslint": "^9.9.1" + "eslint": "^9.9.1 || ^10.0.0" } }, "node_modules/@adonisjs/events": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-9.0.2.tgz", - "integrity": "sha512-qZn2e9V9C8tF4MNqEWv5JGxMG7gcHSJM8RncGpjuJ4cwFwd2jF4xrN6wkCprTVwoyZSxNS0Cp9NkAonySjG5vg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-10.2.0.tgz", + "integrity": "sha512-SzwzbmTLsybSZd47zZMZ3df7puwhY7D8vZ5Uy79SiHjLKbr2eVzUuKjjoYB6/0pZu6IwK9Qx06dI43sl+tLoDw==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.7.3", - "@sindresorhus/is": "^6.2.0", - "emittery": "^1.0.3" + "@poppinss/utils": "^7.0.0", + "@sindresorhus/is": "^7.2.0", + "emittery": "^1.2.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/application": "^8.0.2", - "@adonisjs/fold": "^10.0.1" + "@adonisjs/application": "^9.0.0-next.14 || ^9.0.0", + "@adonisjs/fold": "^11.0.0-next.4 || ^11.0.0" } }, "node_modules/@adonisjs/events/node_modules/@sindresorhus/is": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-6.3.1.tgz", - "integrity": "sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@adonisjs/fold": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-10.1.3.tgz", - "integrity": "sha512-wzeuWMXx9SoJkNO4ycoyfxzoSyyMy3umVxb9cbzeWR/sYNVgi50l+vgJc634+lxpCE0RFTpxCv1M235EWDF9SQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-11.0.0.tgz", + "integrity": "sha512-RnmDPWz2imVp/B74xitxCPqTdoP07bZvfJe1bh9CD9Rmia4jjDvehZF67KFyGNMZ24MuKasqs3jOcM1vGJp0GA==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.8.3" + "@poppinss/utils": "^7.0.0", + "parse-imports": "^3.0.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" } }, "node_modules/@adonisjs/hash": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-9.0.5.tgz", - "integrity": "sha512-oY8PafBrdGsr5UY8cAzzxPCtehZDW7KsPcI47dZpjydOdL/PQrT4liX+cGujL6mSbi3JEgQLBgBs/+SlPFvCrg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-10.1.0.tgz", + "integrity": "sha512-lW0lGwpscu9PUo3Sb3PF580jYU29I9wsPn3dIKzZbTVedqkpaNpBK3YKedwZYkDpYmiyYXi08eTTNhdWjiGLQw==", "license": "MIT", "dependencies": { "@phc/format": "^1.0.0", - "@poppinss/utils": "^6.8.3" + "@poppinss/utils": "^7.0.0" }, "engines": { "node": ">=20.6.0" }, "peerDependencies": { - "argon2": "^0.31.2 || ^0.41.0", - "bcrypt": "^5.1.1" + "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0 || ^0.44.0", + "bcrypt": "^5.1.1 || ^6.0.0" }, "peerDependenciesMeta": { "argon2": { @@ -426,71 +494,109 @@ } }, "node_modules/@adonisjs/health": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@adonisjs/health/-/health-2.0.0.tgz", - "integrity": "sha512-dEAABiAJew1imzwi+OvV/SAnjkMp8TbD5ZIzx1dMRnPynJAlRf37//bHLwZ5Cw44ke5kPzZ/l1n9cx/VeBCicA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/health/-/health-3.1.0.tgz", + "integrity": "sha512-m3doBnSwi/l9v1DO79xmjAoSPl9b2XCp+crGwF8QUlhe5CgWgtfnL0SeFNEiZGliD3c4gYdihKz4Pnydctva8A==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.7.3", + "@poppinss/utils": "^7.0.0", "check-disk-space": "^3.4.0" }, "engines": { - "node": ">=20.6.0" + "node": ">=24.0.0" } }, "node_modules/@adonisjs/http-server": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-7.6.0.tgz", - "integrity": "sha512-ZrQxdIyTJ4gTtUNXp6S956R1tLS5BT2HNP7SAiQSeVmn6J5CL0fBZ2+hx7L0yrF34MUUgZvykIEeLsm3rusXGQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-8.2.0.tgz", + "integrity": "sha512-rqrvPd5RclMB4ubLN85Mj2zl/zFmDl2M1MIjCEbjh0R9iyaVNEvMX0R6FEPmZxxnz4EKAmN3zffHlB0p8j5e1w==", "license": "MIT", "dependencies": { - "@paralleldrive/cuid2": "^2.2.2", - "@poppinss/macroable": "^1.0.4", - "@poppinss/matchit": "^3.1.2", - "@poppinss/middleware": "^3.2.5", - "@poppinss/utils": "^6.9.2", - "@sindresorhus/is": "^7.0.1", - "accepts": "^1.3.8", - "content-disposition": "^0.5.4", - "cookie": "^1.0.2", + "@poppinss/macroable": "^1.1.2", + "@poppinss/matchit": "^3.2.0", + "@poppinss/middleware": "^3.2.7", + "@poppinss/qs": "^6.15.0", + "@poppinss/utils": "^7.0.1", + "@sindresorhus/is": "^7.2.0", + "content-disposition": "^1.1.0", + "cookie-es": "^3.1.1", "destroy": "^1.2.0", "encodeurl": "^2.0.0", "etag": "^1.8.1", "fresh": "^0.5.2", - "mime-types": "^2.1.35", + "mime-types": "^3.0.2", "on-finished": "^2.4.1", "proxy-addr": "^2.0.7", - "qs": "^6.14.0", "tmp-cache": "^1.1.0", - "type-is": "^1.6.18", - "vary": "^1.1.2", - "youch": "^3.3.4" + "type-is": "^2.0.1", + "vary": "^1.1.2" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/application": "^8.0.2", - "@adonisjs/encryption": "^6.0.0", - "@adonisjs/events": "^9.0.0", - "@adonisjs/fold": "^10.0.1", - "@adonisjs/logger": "^6.0.1" + "@adonisjs/application": "^9.0.0-next.14 || ^9.0.0", + "@adonisjs/events": "^10.1.0-next.4 || ^10.1.0", + "@adonisjs/fold": "^11.0.0-next.4 || ^11.0.0", + "@adonisjs/logger": "^7.1.0-next.3 || ^7.1.0", + "@boringnode/encryption": "^0.2.0 || ^1.0.0", + "youch": "^4.1.0-beta.13 || ^4.1.0" + }, + "peerDependenciesMeta": { + "youch": { + "optional": true + } + } + }, + "node_modules/@adonisjs/http-server/node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@adonisjs/http-transformers": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@adonisjs/http-transformers/-/http-transformers-2.3.1.tgz", + "integrity": "sha512-N3gBcKyoPHDeVvVIedTzc+ARSUURwNGTPid/e3iLdM4v/myoSnXd76FL/GGzMmjfqqxegpjI2IEMibG7ylrKSQ==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.3", + "@poppinss/types": "^1.2.1" + }, + "engines": { + "node": ">=24.0.0" + }, + "peerDependencies": { + "@adonisjs/fold": "^11.0.0-next.2" } }, "node_modules/@adonisjs/limiter": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@adonisjs/limiter/-/limiter-2.4.0.tgz", - "integrity": "sha512-W3uhoQ9/dEDs6WQzyBhY0PFedwwkFQbVBaCjMffqJ4TJKsQqAUZdyKCwhvn6lEdqoSmlhTr/HOUh8M4+u7pJGQ==", - "license": "MIT", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@adonisjs/limiter/-/limiter-3.0.1.tgz", + "integrity": "sha512-U7drt/FPlB5PV84dnxQQSFGk75fDxgEHSkfT/eGwx/+Z4re7XlkVU4oros/VGefD72JTgXp7Kz97tS1XW7eEXA==", "dependencies": { - "rate-limiter-flexible": "^7.0.0" + "rate-limiter-flexible": "^9.1.1" }, "peerDependencies": { - "@adonisjs/core": "^6.12.1", - "@adonisjs/lucid": "^20.1.0 || ^21.0.0", - "@adonisjs/redis": "^8.0.1 || ^9.0.0" + "@adonisjs/assembler": "^8.0.0-next.9 || ^8.0.0", + "@adonisjs/core": "^7.0.0-next.1 || ^7.0.0", + "@adonisjs/i18n": "^3.0.0-next.0 || ^3.0.0", + "@adonisjs/lucid": "^22.0.0-next.0 || ^22.0.0", + "@adonisjs/redis": "^10.0.0-next.1 || ^10.0.0" }, "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@adonisjs/i18n": { + "optional": true + }, "@adonisjs/lucid": { "optional": true }, @@ -500,47 +606,56 @@ } }, "node_modules/@adonisjs/logger": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-6.0.6.tgz", - "integrity": "sha512-r5mLmmklSezzu3cu9QaXle2/gPNrgKpiIo+utYlwV3ITsW5JeIX/xcwwMTNM/9f1zU+SwOj5NccPTEFD3feRaw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-7.1.1.tgz", + "integrity": "sha512-MmUlp8xBMT6zZy0+vnQcQjHIlNfU4pUJARlINr7Bqha9BvhIn03QZgJL5QJ+kJe1tl6ZpNAryoRTJUiOk/wINQ==", "license": "MIT", "dependencies": { - "@poppinss/utils": "^6.9.2", + "@poppinss/utils": "^7.0.0", "abstract-logging": "^2.0.1", - "pino": "^9.6.0" + "pino": "^10.3.1" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" + }, + "peerDependencies": { + "pino-pretty": "^13.1.1" + }, + "peerDependenciesMeta": { + "pino-pretty": { + "optional": true + } } }, "node_modules/@adonisjs/lucid": { - "version": "21.6.1", - "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-21.6.1.tgz", - "integrity": "sha512-0TLCcPm9GHShJlsDAF5SHilafnvTxW25y5nD3bGJBSMEaNfGXcGRBbnyWoeNs7DsnqMCZ6ociT+0XMcKJWzQrQ==", + "version": "22.4.2", + "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-22.4.2.tgz", + "integrity": "sha512-3ztENqBQIFSGAWREHKCGbL1g4ehtsxxsuFX72Uf5bq+oSc0D6UcumjzYpU8TPyBxhmgS6HuRSfz2rG42iuz7AA==", "license": "MIT", "dependencies": { - "@adonisjs/presets": "^2.6.4", - "@faker-js/faker": "^9.6.0", - "@poppinss/hooks": "^7.2.5", - "@poppinss/macroable": "^1.0.4", - "@poppinss/utils": "^6.9.2", + "@adonisjs/presets": "^3.0.0", + "@faker-js/faker": "^10.4.0", + "@poppinss/hooks": "^7.3.0", + "@poppinss/macroable": "^1.1.2", + "@poppinss/qs": "^6.15.0", + "@poppinss/utils": "^7.0.1", + "deepmerge": "^4.3.1", "fast-deep-equal": "^3.1.3", "igniculus": "^1.5.0", "kleur": "^4.1.5", - "knex": "^3.1.0", - "knex-dynamic-connection": "^3.2.0", + "knex": "^3.2.8", + "knex-dynamic-connection": "^5.0.1", "pretty-hrtime": "^1.0.3", - "qs": "^6.14.0", "slash": "^5.1.0", "tarn": "^3.0.2" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/assembler": "^7.7.0", - "@adonisjs/core": "^6.10.1", - "@vinejs/vine": "^2.0.0 || ^3.0.0", + "@adonisjs/assembler": "^8.0.0-next.29 || ^8.0.0", + "@adonisjs/core": "^7.0.0-next.21 || ^7.0.0", + "@vinejs/vine": "^3.0.0 || ^4.0.0", "luxon": "^3.4.4" }, "peerDependenciesMeta": { @@ -556,16 +671,16 @@ } }, "node_modules/@adonisjs/presets": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@adonisjs/presets/-/presets-2.6.4.tgz", - "integrity": "sha512-WvzWouziX88GMoGBLDobGRaSktWfz+fRqADJyhJd7+l0M2VMm5NF0LvAXbV8lMBLtBCicOxk973bJ9Kmyfy3qQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/presets/-/presets-3.0.0.tgz", + "integrity": "sha512-+gVIvyEiM7jiN5Gb93200TAC8ed3vZIPfxFFo0pIVgX8k40BleuYhWxFhI6TPocVXXIIpw2JuMFV2Pqjk36W2A==", "license": "MIT", - "dependencies": { - "@poppinss/utils": "^6.7.3" + "engines": { + "node": ">=24.0.0" }, "peerDependencies": { - "@adonisjs/assembler": "^7.8.2", - "@adonisjs/core": "^6.13.0" + "@adonisjs/assembler": "^8.0.0-next.9 || ^8.0.0", + "@adonisjs/core": "^7.0.0-next.1 || ^7.0.0" }, "peerDependenciesMeta": { "@adonisjs/assembler": { @@ -574,44 +689,44 @@ } }, "node_modules/@adonisjs/prettier-config": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@adonisjs/prettier-config/-/prettier-config-1.4.4.tgz", - "integrity": "sha512-rL7JVPyMcQyQKVIt4U4DC0zO9sjcPnepLTx859b47HtHTrQTuDi8/uSqEL//vhAmqlvNuQg0FBgnPJ1eEDbiAA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/prettier-config/-/prettier-config-1.4.0.tgz", + "integrity": "sha512-6MqbAvGlxf8iNHwGiJmtMKMhwoxRNtpzuLV8F93lQtsLluU1fjF8EDDpTPl9RrQblt7+6zY28K5nh1rmmXk8mQ==", "dev": true, "license": "MIT", "dependencies": { - "prettier-plugin-edgejs": "^1.0.0" + "prettier-edgejs": "^0.2.16" } }, "node_modules/@adonisjs/repl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-4.1.0.tgz", - "integrity": "sha512-7Ml87uoufDQmpjRZYbJeRTk0/WcD4DllJ96L1r2IWF/jZIsryiVN5o+7Xd7fHlRzd8iapAbs32Tq4a6fVI6UKA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-5.0.0.tgz", + "integrity": "sha512-cPp0w5svYUA3M1gdxQBO2Mx5g+SZfPweqKCAxk7C1Os/Qu67JKgWqXqNnl1q0Tzv/l0L19Ms1C7ivzQxeBNajg==", "license": "MIT", "dependencies": { - "@poppinss/colors": "^4.1.4", - "string-width": "^7.2.0" + "@poppinss/colors": "^4.1.6", + "string-width": "^8.2.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" } }, "node_modules/@adonisjs/tsconfig": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@adonisjs/tsconfig/-/tsconfig-1.4.0.tgz", - "integrity": "sha512-go5KlxE8jJaeoIRzm51PcF2YJSK5i022douVk9OjAqvDiU1t2UepcDoEsSiEOgogUDojp9kbRQmFyf0y0YqvOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/tsconfig/-/tsconfig-2.0.0.tgz", + "integrity": "sha512-Uz8qvB6KR9otCh9zei2VEj7tPwdsrT7R+voYoN4tUfEijWRdTNgJ8d1CtyLKHaggCCOwZIwZLVklV/h2FDHgNw==", "dev": true, "license": "MIT" }, "node_modules/@antfu/install-pkg": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz", - "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", "devOptional": true, "license": "MIT", "dependencies": { - "package-manager-detector": "^0.2.0", - "tinyexec": "^0.3.0" + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -626,25 +741,202 @@ "node": ">=4" } }, + "node_modules/@ast-grep/napi": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi/-/napi-0.42.1.tgz", + "integrity": "sha512-+YEv9ElJi9azr8AYII79NxYXQRJsrUy1kUqZfxZfvPM7rhs3174mzB+qEE9Pl3sVKAJS5cevyT4lgLNV0AZK6A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@ast-grep/napi-darwin-arm64": "0.42.1", + "@ast-grep/napi-darwin-x64": "0.42.1", + "@ast-grep/napi-linux-arm64-gnu": "0.42.1", + "@ast-grep/napi-linux-arm64-musl": "0.42.1", + "@ast-grep/napi-linux-x64-gnu": "0.42.1", + "@ast-grep/napi-linux-x64-musl": "0.42.1", + "@ast-grep/napi-win32-arm64-msvc": "0.42.1", + "@ast-grep/napi-win32-ia32-msvc": "0.42.1", + "@ast-grep/napi-win32-x64-msvc": "0.42.1" + } + }, + "node_modules/@ast-grep/napi-darwin-arm64": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-arm64/-/napi-darwin-arm64-0.42.1.tgz", + "integrity": "sha512-VtO4DX20ODCfRBwv1I71lZx+qlrhlMbt9Rpo3LozoaUpHnLmyFMBSgpUal5KTd1SCKUK8ekJGgxpKWo27H4AVQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-darwin-x64": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-x64/-/napi-darwin-x64-0.42.1.tgz", + "integrity": "sha512-V2uaKP6QZLb60iFHK0IiXAcwSoUliiDJ3c1zLLzHnBFyCbTKC4b3L3XtkiyKsnpET+uzY7hQLpTIAhW5aOCX4w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-linux-arm64-gnu": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-gnu/-/napi-linux-arm64-gnu-0.42.1.tgz", + "integrity": "sha512-wmt59yzvcZT4Z5XpxB1B1FoFrc32l0vmy2G7yrY2lG9qP2M157mWdp1T50h2XoYrotyRhCyLDXP70SiTZHZkaQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-linux-arm64-musl": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-musl/-/napi-linux-arm64-musl-0.42.1.tgz", + "integrity": "sha512-cnU+H0drvdkApQDJEcBsYGlPq2gk3l2Xxq0y8EmcxAXYXDNkz+Gc2vfvyM7ib2jD9Y51+cQIsb0RFzA2g9VnZQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-linux-x64-gnu": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-gnu/-/napi-linux-x64-gnu-0.42.1.tgz", + "integrity": "sha512-gY+PtqbFtFlR8rCL9F6GEPuymqLhh2eG/e8Ly01Z/S5x3e357nNaF69xAvNRpYi/HnEUZ5cE1MzshDCjubqE1A==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-linux-x64-musl": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-musl/-/napi-linux-x64-musl-0.42.1.tgz", + "integrity": "sha512-yDTlIgFOzglpzs3Ua9w43uVeEW4csf80F5/n2FqCK5pip4Iyfu21Q+M8iC9AmTRl/OGHVI48ieuPwOD9i1i6hA==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-win32-arm64-msvc": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-arm64-msvc/-/napi-win32-arm64-msvc-0.42.1.tgz", + "integrity": "sha512-6WQhKEfZmtfMSIOzluMoBaQhNqfRKXzj5y2YA2U0Y3x7HxNAZBO067y8xlSMddKFN/FtCwft8GFktFxqSYWl1w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-win32-ia32-msvc": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-ia32-msvc/-/napi-win32-ia32-msvc-0.42.1.tgz", + "integrity": "sha512-ET2vRrsHo0e4JJbCrejzDcDPsfTmRaYK9VIpq1MqXXAUvLoiMly+cQYZ64MWdXTlgITKMXCYxhCbFPTn/9XZaQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ast-grep/napi-win32-x64-msvc": { + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-x64-msvc/-/napi-win32-x64-msvc-0.42.1.tgz", + "integrity": "sha512-NAeA2Q6jp7F9uXtSuG12c1xjTzipXFCTvuAcEBnsTwBXq0kdPV6H6Y4GZJVcDhsHk3TX4sGlQGkuV/6FT2Ngig==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -652,56 +944,68 @@ } }, "node_modules/@borewit/text-codec": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.1.tgz", - "integrity": "sha512-k7vvKPbf7J2fZ5klGRD9AeKfUvojuZIQ3BT5u7Jfv+puwXkUBUT5PVyMDfJZpy30CBDXGMgw7fguK/lpOMBvgw==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz", + "integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/@boringnode/encryption": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@boringnode/encryption/-/encryption-1.0.0.tgz", + "integrity": "sha512-wGGOE7ywA4W6KAVoVC7s1P4ULzFLIQA/JvthGAa41EA0CaH7kGGawkBB5t5tvWopgBNMhOpIg3uxvULxqf2rQw==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^7.0.0-next.7" + }, + "engines": { + "node": ">=20.6" + } + }, "node_modules/@chevrotain/cst-dts-gen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", - "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.2.0.tgz", + "integrity": "sha512-ssJFvn/UXhQQeICw3SR/fZPmYVj+JM2mP+Lx7bZ51cOeHaMWOKp3AUMuyM3QR82aFFXTfcAp67P5GpPjGmbZWQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@chevrotain/gast": "11.0.3", - "@chevrotain/types": "11.0.3", - "lodash-es": "4.17.21" + "@chevrotain/gast": "11.2.0", + "@chevrotain/types": "11.2.0", + "lodash-es": "4.17.23" } }, "node_modules/@chevrotain/gast": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", - "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.2.0.tgz", + "integrity": "sha512-c+KoD6eSI1xjAZZoNUW+V0l13UEn+a4ShmUrjIKs1BeEWCji0Kwhmqn5FSx1K4BhWL7IQKlV7wLR4r8lLArORQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@chevrotain/types": "11.0.3", - "lodash-es": "4.17.21" + "@chevrotain/types": "11.2.0", + "lodash-es": "4.17.23" } }, "node_modules/@chevrotain/regexp-to-ast": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", - "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.2.0.tgz", + "integrity": "sha512-lG73pBFqbXODTbXhdZwv0oyUaI+3Irm+uOv5/W79lI3g5hasYaJnVJOm3H2NkhA0Ef4XLBU4Scr7TJDJwgFkAw==", "dev": true, "license": "Apache-2.0" }, "node_modules/@chevrotain/types": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", - "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.2.0.tgz", + "integrity": "sha512-vBMSj/lz/LqolbGQEHB0tlpW5BnljHVtp+kzjQfQU+5BtGMTuZCPVgaAjtKvQYXnHb/8i/02Kii00y0tsuwfsw==", "dev": true, "license": "Apache-2.0" }, "node_modules/@chevrotain/utils": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", - "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.2.0.tgz", + "integrity": "sha512-+7whECg4yNWHottjvr2To2BRxL4XJVjIyyv5J4+bJ0iMOVU8j/8n1qPDLZS/90W/BObDR8VNL46lFbzY/Hosmw==", "dev": true, "license": "Apache-2.0" }, @@ -715,23 +1019,10 @@ "node": ">=0.1.90" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz", - "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -761,9 +1052,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -771,24 +1062,31 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", - "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.6", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-array/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -797,9 +1095,9 @@ } }, "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -810,19 +1108,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", - "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -833,20 +1134,20 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", + "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -856,10 +1157,17 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -868,9 +1176,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -881,9 +1189,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.31.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", - "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", "engines": { @@ -894,9 +1202,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -904,13 +1212,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.1", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -918,9 +1226,9 @@ } }, "node_modules/@faker-js/faker": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.7.0.tgz", - "integrity": "sha512-aozo5vqjCmDoXLNUJarFZx2IN/GgGaogY4TMJ6so/WLZOWpSV7fvj2dmrV6sEAnUm1O7aCrhTibjpzeDFgNqbg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-10.4.0.tgz", + "integrity": "sha512-sDBWI3yLy8EcDzgobvJTWq1MJYzAkQdpjXuPukga9wXonhpMRvd1Izuo2Qgwey2OiEoRIBr35RMU9HJRoOHzpw==", "funding": [ { "type": "opencollective", @@ -929,46 +1237,46 @@ ], "license": "MIT", "engines": { - "node": ">=18.0.0", - "npm": ">=9.0.0" + "node": "^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0", + "npm": ">=10" } }, "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -986,10 +1294,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", - "dev": true, + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "license": "Apache-2.0", "engines": { "node": ">=18.18" @@ -1000,18 +1307,19 @@ } }, "node_modules/@japa/api-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@japa/api-client/-/api-client-3.1.0.tgz", - "integrity": "sha512-wrJVRgu8kF7odTnpNCsV6zpQgNOBrer3BHVBXm3qnS0FiqLlv8a6UZ5EKOqoLSRwfHV0LwBE7kcZq9f4yTvUfw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@japa/api-client/-/api-client-3.2.1.tgz", + "integrity": "sha512-dICbeEkgGRpjkm3CviOpvPfYMBZddaoW2w20pgNMm3CfvD2bixWOFn6FBRZRq5L+fHYe/O/xfSNGMCQBFy7Zlw==", "devOptional": true, "license": "MIT", "dependencies": { - "@poppinss/hooks": "^7.2.5", - "@poppinss/macroable": "^1.0.4", + "@poppinss/hooks": "^7.3.0", + "@poppinss/macroable": "^1.1.0", + "@poppinss/qs": "^6.15.0", "@types/superagent": "^8.1.9", - "cookie": "^1.0.2", - "set-cookie-parser": "^2.7.1", - "superagent": "^10.2.1" + "cookie-es": "^2.0.0", + "set-cookie-parser": "^2.7.2", + "superagent": "^10.3.0" }, "engines": { "node": ">=18.16.0" @@ -1019,7 +1327,7 @@ "peerDependencies": { "@japa/assert": "^2.0.0 || ^3.0.0 || ^4.0.0", "@japa/openapi-assertions": "^0.1.1", - "@japa/runner": "^3.1.2 || ^4.0.0" + "@japa/runner": "^3.1.2 || ^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { "@japa/assert": { @@ -1030,91 +1338,81 @@ } } }, + "node_modules/@japa/api-client/node_modules/cookie-es": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.1.tgz", + "integrity": "sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==", + "devOptional": true, + "license": "MIT" + }, "node_modules/@japa/assert": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@japa/assert/-/assert-4.0.1.tgz", - "integrity": "sha512-n/dA9DVLNvM/Bw8DtN8kBdPjYsSHe3XTRjF5+U8vlzDavpW9skUANl2CHR1K/TBWZxwMfGi15SJIjo6UCs09AA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@japa/assert/-/assert-4.2.0.tgz", + "integrity": "sha512-Krgrcee01BN1StlVwK5JQP6LL5t3DE3uFNbfFoDTfW7kQuHB0xh6yfaV0hrgcoiEjsqmm2OOsVWeju9aXK4vIA==", "devOptional": true, "license": "MIT", "dependencies": { - "@poppinss/macroable": "^1.0.4", - "@types/chai": "^5.0.1", + "@poppinss/macroable": "^1.1.0", + "@types/chai": "^5.2.3", "assertion-error": "^2.0.1", - "chai": "^5.1.2" + "chai": "^6.2.1" }, "engines": { "node": ">=18.16.0" }, "peerDependencies": { - "@japa/runner": "^3.1.2 || ^4.0.0" + "@japa/runner": "^3.1.2 || ^4.0.0 || ^5.0.0" } }, "node_modules/@japa/core": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@japa/core/-/core-10.3.0.tgz", - "integrity": "sha512-+vaqMiPnVaxlKH1sAwRQ80AwzlPysPKivhB8q1I2+BGe35lNrfiHKGMC52fuGAZBNuH5W2nInSCxr4cN/BTEIQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@japa/core/-/core-10.4.0.tgz", + "integrity": "sha512-1zvKL29i7r/4jqTNBsw91hk1tp6wbqFXvyV2p+Og4axDRhIXjSAfauRvBL9QuB80bOa+pDIMQ5kCTaCplSm0Eg==", "devOptional": true, "license": "MIT", "dependencies": { - "@poppinss/hooks": "^7.2.5", - "@poppinss/macroable": "^1.0.4", - "@poppinss/string": "^1.2.0", + "@poppinss/hooks": "^7.3.0", + "@poppinss/macroable": "^1.1.0", + "@poppinss/string": "^1.7.1", "async-retry": "^1.3.3", - "emittery": "^1.0.3", - "string-width": "^7.2.0", - "time-span": "^5.1.0" + "emittery": "^1.2.0", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" } }, "node_modules/@japa/errors-printer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-4.1.2.tgz", - "integrity": "sha512-exl/r07ssJhEEsMdFT2sXgP1sV7Tp3mZvYUEDMXZ8YjWZPHTFLLcA7o9q9FJSSB1ITrEIbx2SWTB+2fFUaZ3NA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-4.1.4.tgz", + "integrity": "sha512-ogPT87QLaugKyPVcq+ZypcetVeJpXZN7RfVRlRDIrSHsHBw6ILCtNXghVxD9POjqxtUM7RON3sUkgZzLnVQA5g==", "devOptional": true, "license": "MIT", "dependencies": { - "@poppinss/colors": "^4.1.4", - "jest-diff": "^29.7.0", - "supports-color": "^10.0.0", - "youch": "^4.1.0-beta.5" + "@poppinss/colors": "^4.1.6", + "jest-diff": "^30.2.0", + "supports-color": "^10.2.2", + "youch": "^4.1.0-beta.13" }, "engines": { "node": ">=18.16.0" } }, - "node_modules/@japa/errors-printer/node_modules/youch": { - "version": "4.1.0-beta.7", - "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.7.tgz", - "integrity": "sha512-HUn0M24AUTMvjdkoMtH8fJz2FEd+k1xvtR9EoTrDUoVUi6o7xl5X+pST/vjk4T3GEQo2mJ9FlAvhWBm8dIdD4g==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@poppinss/dumper": "^0.6.3", - "@speed-highlight/core": "^1.2.7", - "cookie": "^1.0.2", - "youch-core": "^0.3.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@japa/plugin-adonisjs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@japa/plugin-adonisjs/-/plugin-adonisjs-4.0.0.tgz", - "integrity": "sha512-M2LUtHhKr4KgBfX73tDHNCD1IOmcXp9dvC+AinmRxsggIFnarsClcfjT/sXc3uNzjZW7Lk31LvcH76AxJHBmJQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@japa/plugin-adonisjs/-/plugin-adonisjs-5.2.0.tgz", + "integrity": "sha512-Knk3X/UeZiEvkXmTj9+dAIOdJHMqRUJFsUMw9y8at+AR1VbPJR9T+aU5SaOn6OtejEFnUMILwJYC3ohg23+vhw==", "devOptional": true, "license": "MIT", "engines": { "node": ">=18.16.0" }, "peerDependencies": { - "@adonisjs/core": "^6.17.0", - "@japa/api-client": "^2.0.3 || ^3.0.0", - "@japa/browser-client": "^2.0.3", - "@japa/runner": "^3.1.2 || ^4.0.0", - "playwright": "^1.42.1" + "@adonisjs/core": "^7.0.0-next.21 || ^7.0.0", + "@japa/api-client": "^3.1.0", + "@japa/browser-client": "^2.2.0", + "@japa/runner": "^4.0.0 || ^5.0.0", + "playwright": "^1.57.0" }, "peerDependenciesMeta": { "@japa/api-client": { @@ -1129,73 +1427,495 @@ } }, "node_modules/@japa/runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-4.2.0.tgz", - "integrity": "sha512-e3BFn1rca/OTiagilkmRTrLVhl00iC/LrY5j4Ns/VZDONYHs9BKAbHaImxjD1zoHMEhwQEF+ce7fgMO/BK+lfg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-4.5.0.tgz", + "integrity": "sha512-F5BWRY20V5D40EUXK+O4bd1IZ7pNpsz/ct2YJGjXa3NXwVJFjGCv8NYBxlUUlfLJyfXNXlLKi+iIjbaMq2UWIQ==", "devOptional": true, "license": "MIT", "dependencies": { "@japa/core": "^10.3.0", - "@japa/errors-printer": "^4.1.2", - "@poppinss/colors": "^4.1.4", - "@poppinss/hooks": "^7.2.5", + "@japa/errors-printer": "^4.1.3", + "@poppinss/colors": "^4.1.5", + "@poppinss/hooks": "^7.2.6", + "@poppinss/string": "^1.7.0", + "@poppinss/utils": "7.0.0-next.6", + "error-stack-parser-es": "^1.0.5", "fast-glob": "^3.3.3", - "find-cache-dir": "^5.0.0", + "find-cache-directory": "^6.0.0", "getopts": "^2.3.0", "ms": "^2.1.3", "serialize-error": "^12.0.0", "slash": "^5.1.0", - "supports-color": "^10.0.0" + "supports-color": "^10.1.0" }, "engines": { "node": ">=18.16.0" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@japa/runner/node_modules/@poppinss/utils": { + "version": "7.0.0-next.6", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-7.0.0-next.6.tgz", + "integrity": "sha512-1OQDbCKmFROvWpmzvkQV/mCzBXSwhED8SJfJ0HiYKiLNEqYM8Kpa4EK0AfmXGQc+DdIj6eqib/vT8i5tJ2fatw==", "devOptional": true, "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@poppinss/exception": "^1.2.3", + "@poppinss/object-builder": "^1.1.0", + "@poppinss/string": "^1.7.1", + "@poppinss/types": "^1.2.1", + "flattie": "^1.1.1" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, + "node_modules/@jest/diff-sequences": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "devOptional": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "devOptional": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jimp/core": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-1.6.1.tgz", + "integrity": "sha512-+BoKC5G6hkrSy501zcJ2EpfnllP+avPevcBfRcZe/CW+EwEfY6X1EZ8QWyT7NpDIvEEJb1fdJnMMfUnFkxmw9A==", + "license": "MIT", + "dependencies": { + "@jimp/file-ops": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "await-to-js": "^3.0.0", + "exif-parser": "^0.1.12", + "file-type": "^21.3.3", + "mime": "3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/diff": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/diff/-/diff-1.6.1.tgz", + "integrity": "sha512-YkKDPdHjLgo1Api3+Bhc0GLAygldlpt97NfOKoNg1U6IUNXA6X2MgosCjPfSBiSvJvrrz1fsIR+/4cfYXBI/HQ==", + "license": "MIT", + "dependencies": { + "@jimp/plugin-resize": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "pixelmatch": "^5.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/file-ops": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/file-ops/-/file-ops-1.6.1.tgz", + "integrity": "sha512-T+gX6osHjprbDRad0/B71Evyre7ZdVY1z/gFGEG9Z8KOtZPKboWvPeP2UjbZYWQLy9UKCPQX1FNAnDiOPkJL7w==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-bmp": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/js-bmp/-/js-bmp-1.6.1.tgz", + "integrity": "sha512-xzWzNT4/u5zGrTT3Tme9sGU7YzIKxi13+BCQwLqACbt5DXf9SAfdzRkopZQnmDko+6In5nqaT89Gjs43/WdnYQ==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "bmp-ts": "^1.0.9" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-gif": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/js-gif/-/js-gif-1.6.1.tgz", + "integrity": "sha512-YjY2W26rQa05XhanYhRZ7dingCiNN+T2Ymb1JiigIbABY0B28wHE3v3Cf1/HZPWGu0hOg36ylaKgV5KxF2M58w==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "gifwrap": "^0.10.1", + "omggif": "^1.0.10" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-jpeg": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/js-jpeg/-/js-jpeg-1.6.1.tgz", + "integrity": "sha512-HT9H3yOmlOFzYmdI15IYdfy6ggQhSRIaHeA+OTJSEORXBqEo97sUZu/DsgHIcX5NJ7TkJBTgZ9BZXsV6UbsyMg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "jpeg-js": "^0.4.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-png": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/js-png/-/js-png-1.6.1.tgz", + "integrity": "sha512-SZ/KVhI5UjcSzzlXsXdIi/LhJ7UShf2NkMOtVrbZQcGzsqNtynAelrOXeoTxcanfVqmNhAoVHg8yR2cYoqrYjA==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "pngjs": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-tiff": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/js-tiff/-/js-tiff-1.6.1.tgz", + "integrity": "sha512-jDG/eJquID1M4MBlKMmDRBmz2TpXMv7TUyu2nIRUxhlUc2ogC82T+VQUkca9GJH1BBJ9dx5sSE5dGkWNjIbZxw==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "utif2": "^4.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-1.6.1.tgz", + "integrity": "sha512-MwnI7C7K81uWddY9FLw1fCOIy6SsPIUftUz36Spt7jisCn8/40DhQMlSxpxTNelnZb/2SnloFimQfRZAmHLOqQ==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-1.6.1.tgz", + "integrity": "sha512-lIo7Tzp5jQu30EFFSK/phXANK3citKVEjepDjQ6ljHoIFtuMRrnybnmI2Md24ulvWlDaz+hh3n6qrMb8ydwhZQ==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/utils": "1.6.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-1.6.1.tgz", + "integrity": "sha512-kK1PavY6cKHNNKce37vdV4Tmpc1/zDKngGoeOV3j+EMatoHFZUinV3s6F9aWryPs3A0xhCLZgdJ6Zeea1d5LCQ==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-1.6.1.tgz", + "integrity": "sha512-LtUN1vAP+LRlZAtTNVhDRSiXx+26Kbz3zJaG6a5k59gQ95jgT5mknnF8lxkHcqJthM4MEk3/tPxkdJpEybyF/A==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "tinycolor2": "^1.6.0", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-1.6.1.tgz", + "integrity": "sha512-m0qhrfA8jkTqretGv4w+T/ADFR4GwBpE0sCOC2uJ0dzr44/ddOMsIdrpi89kabqYiPYIrxkgdCVCLm3zn1Vkkg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/plugin-blit": "1.6.1", + "@jimp/plugin-resize": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-1.6.1.tgz", + "integrity": "sha512-hZytnsth0zoll6cPf434BrT+p/v569Wr5tyO6Dp0dH1IDPhzhB5F38sZGMLDo7bzQiN9JFVB3fxkcJ/WYCJ3Mg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/plugin-crop": "1.6.1", + "@jimp/plugin-resize": "1.6.1", + "@jimp/types": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-1.6.1.tgz", + "integrity": "sha512-EerRSLlclXyKDnYc/H9w/1amZW7b7v3OGi/VlerPd2M/pAu5X8TkyYWtfqYCXnNp1Ixtd8oCo9zGfY9zoXT4rg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-1.6.1.tgz", + "integrity": "sha512-K07QVl7xQwIfD6KfxRV/c3E9e7ZBXxUXdWuvoTWcKHL2qV48MOF5Nqbz/aJW4ThnQARIsxvYlZjPFiqkCjlU+g==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-1.6.1.tgz", + "integrity": "sha512-+2V+GCV2WycMoX1/z977TkZ8Zq/4MVSKElHYatgUqtwXMi2fDK2gKYU2g9V39IqFvTJsTIsK0+58VFz/ROBVew==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-1.6.1.tgz", + "integrity": "sha512-XtS5ZyoZ0vxZxJ6gkqI63SivhtI58vX95foMPM+cyzYkRsJXMOYCr8DScxF5bp4Xr003NjYm/P+7+08tibwzHA==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-1.6.1.tgz", + "integrity": "sha512-ws38W/sGj7LobNRayQ83garxiktOyWxM5vO/y4a/2cy9v65SLEUzVkrj+oeAaUSSObdz4HcCEla7XtGlnAGAaA==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-hash": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-hash/-/plugin-hash-1.6.1.tgz", + "integrity": "sha512-sZt6ZcMX6i8vFWb4GYnw0pR/o9++ef0dTVcboTB5B/g7nrxCODIB4wfEkJ/YqZM5wUvol77K1qeS0/rVO6z21A==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/js-bmp": "1.6.1", + "@jimp/js-jpeg": "1.6.1", + "@jimp/js-png": "1.6.1", + "@jimp/js-tiff": "1.6.1", + "@jimp/plugin-color": "1.6.1", + "@jimp/plugin-resize": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "any-base": "^1.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-1.6.1.tgz", + "integrity": "sha512-SIG0/FcmEj3tkwFxc7fAGLO8o4uNzMpSOdQOhbCgxefQKq5wOVMk9BQx/sdMPBwtMLr9WLq0GzLA/rk6t2v20A==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-1.6.1.tgz", + "integrity": "sha512-BYVz/X3Xzv8XYilVeDy11NOp0h7BTDjlOtu0BekIFHP1yHVd24AXNzbOy52XlzYZWQ0Dl36HOHEpl/nSNrzc6w==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/js-jpeg": "1.6.1", + "@jimp/js-png": "1.6.1", + "@jimp/plugin-blit": "1.6.1", + "@jimp/types": "1.6.1", + "parse-bmfont-ascii": "^1.0.6", + "parse-bmfont-binary": "^1.0.6", + "parse-bmfont-xml": "^1.1.6", + "simple-xml-to-json": "^1.2.2", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-quantize": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-quantize/-/plugin-quantize-1.6.1.tgz", + "integrity": "sha512-J2En9PLURfP+vwYDtuZ9T8yBW6BWYZBScydAjRiPBmJfEhTcNQqiiQODrZf7EqbbX/Sy5H6dAeRiqkgoV9N6Ww==", + "license": "MIT", + "dependencies": { + "image-q": "^4.0.0", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-1.6.1.tgz", + "integrity": "sha512-CLkrtJoIz2HdWnpYiN6p8KYcPc00rCH/SUu6o+lfZL05Q4uhecJlnvXuj9x+U6mDn3ldPmJj6aZqMHuUJzdVqg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/types": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-1.6.1.tgz", + "integrity": "sha512-nOjVjbbj705B02ksysKnh0POAwEBXZtJ9zQ5qC+X7Tavl3JNn+P3BzQovbBxLPSbUSld6XID9z5ijin4PtOAUg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/plugin-crop": "1.6.1", + "@jimp/plugin-resize": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-1.6.1.tgz", + "integrity": "sha512-JOKv9F8s6tnVLf4sB/2fF0F339EFnHvgEdFYugO6VhowKLsap0pEZmLyE/DlRnYtIj2RddHZVxVMp/eKJ04l2Q==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/plugin-color": "1.6.1", + "@jimp/plugin-hash": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/types": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-1.6.1.tgz", + "integrity": "sha512-leI7YbveTNi565m910XgIOwXyuu074H5qazAD1357HImJSv2hqxnWXpwxQbadGWZ7goZRYBDZy5lpqud0p7q5w==", + "license": "MIT", + "dependencies": { + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/utils": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-1.6.1.tgz", + "integrity": "sha512-veFPRd93FCnS7AgmCkPgARVGoDRrJ9cm1ujuNyA+UfQ5VKbED2002sm5XfFLFwTsKC8j04heTrwe+tU1dluXOw==", + "license": "MIT", + "dependencies": { + "@jimp/types": "1.6.1", + "tinycolor2": "^1.6.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "devOptional": true, "license": "MIT", "engines": { "node": "^14.21.3 || >=16" @@ -1243,9 +1963,10 @@ } }, "node_modules/@paralleldrive/cuid2": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", - "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz", + "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==", + "devOptional": true, "license": "MIT", "dependencies": { "@noble/hashes": "^1.1.5" @@ -1260,83 +1981,74 @@ "node": ">=10" } }, + "node_modules/@pinojs/redact": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", + "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==", + "license": "MIT" + }, "node_modules/@pkgr/core": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.2.tgz", - "integrity": "sha512-25L86MyPvnlQoX2MTIV2OiUcb6vJ6aRbFa9pbwByn95INKD5mFH2smgjDhq+fwJoqAgvgbdJLj6Tz7V9X5CFAQ==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@poppinss/chokidar-ts": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-4.1.6.tgz", - "integrity": "sha512-zGH6G+IcqrL2rgbbQtj349YAkaihb6dFwWS4QVgfcANBPjRWUvlWtlYhHMrglmglXfNjKc3K3bPP2HjxD/BQ4Q==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "chokidar": "^4.0.3", - "emittery": "^1.1.0", - "memoize": "^10.1.0", - "picomatch": "^4.0.2", - "slash": "^5.1.0" - }, - "engines": { - "node": ">=18.16.0" - }, - "peerDependencies": { - "typescript": "^4.0.0 || ^5.0.0" + "url": "https://opencollective.com/pkgr" } }, "node_modules/@poppinss/cliui": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-6.4.3.tgz", - "integrity": "sha512-flAHvbWHP4r7+DVcWMuO9EGnnkaZLJzkei6E4QTVhPsIAKBI78vDplhHXZofUvwG5IrU42QM0gX/pxMOKwQRvg==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-6.8.1.tgz", + "integrity": "sha512-o/ssbwr+r6woG65rk9eFHnn9dVUphZr/Rk+4+05ENVMBWYpYhTJGdE9RobTG5JLFubvO4gWIyFeNlC+I4EM6eA==", "license": "MIT", "dependencies": { - "@poppinss/colors": "^4.1.4", + "@poppinss/colors": "^4.1.6", "cli-boxes": "^4.0.1", "cli-table3": "^0.6.5", - "cli-truncate": "^4.0.0", - "log-update": "^6.1.0", + "cli-truncate": "^5.2.0", + "log-update": "^7.2.0", "pretty-hrtime": "^1.0.3", - "string-width": "^7.2.0", - "supports-color": "^10.0.0", - "terminal-size": "^4.0.0", - "wordwrap": "^1.0.0" - }, - "engines": { - "node": ">=18.16.0" + "string-width": "^8.2.0", + "supports-color": "^10.2.2", + "terminal-size": "^4.0.1" } }, "node_modules/@poppinss/colors": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.4.tgz", - "integrity": "sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", "license": "MIT", "dependencies": { "kleur": "^4.1.5" - }, - "engines": { - "node": ">=18.16.0" } }, "node_modules/@poppinss/dumper": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.3.tgz", - "integrity": "sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.7.0.tgz", + "integrity": "sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==", "license": "MIT", "dependencies": { - "@poppinss/colors": "^4.1.4", - "@sindresorhus/is": "^7.0.1", + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", "supports-color": "^10.0.0" } }, + "node_modules/@poppinss/dumper/node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@poppinss/exception": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", @@ -1344,57 +2056,49 @@ "license": "MIT" }, "node_modules/@poppinss/hooks": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-7.2.5.tgz", - "integrity": "sha512-mxORKQ5CFzQNi6yK3zwCGWfGS507w23IhV3kFq42QzWlv/vpvf4aMJDbtfMCR5p52ghVoe0d1wmgp77ak2ORhQ==", - "license": "MIT", - "engines": { - "node": ">=18.16.0" - } + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-7.3.0.tgz", + "integrity": "sha512-/H35z/bWqHg7085QOxWUDYMidx6Kl6b8kIyzIXlRYzWvsk1xm9hQOlXWdWEYch+Gmn8eL7tThx59MBj8BLxDrQ==", + "license": "MIT" }, "node_modules/@poppinss/macroable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.1.0.tgz", - "integrity": "sha512-y/YKzZDuG8XrpXpM7Z1RdQpiIc0MAKyva24Ux1PB4aI7RiSI/79K8JVDcdyubriTm7vJ1LhFs8CrZpmPnx/8Pw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.1.2.tgz", + "integrity": "sha512-FAVBRzzWhYP5mA3lCwLH1A0fKBqq5anyjGet90Z81aRK5c/+LTGUE1zJhZrErjaenBSOOI9BVUs3WVmotneFQA==", "license": "MIT" }, "node_modules/@poppinss/matchit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.2.tgz", - "integrity": "sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.2.0.tgz", + "integrity": "sha512-9SoMICN+LMO7ZtMj2ja8N7RHlC4mmuv5WwIBXWjabMd2SyXE1dIydh29exlgm+dGMP84PjwvfJH1TmWL4qz1og==", "license": "MIT", "dependencies": { "@arr/every": "^1.0.0" } }, "node_modules/@poppinss/middleware": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@poppinss/middleware/-/middleware-3.2.5.tgz", - "integrity": "sha512-+P9yY4KYYZFTbOoIvVK/R4PfPcPyxt4E23Dx4l7V8Z/8+DOzAL01eWZs9mMgHOYTbAokKVLQ+JIsyDmrTA0Uyg==", - "license": "MIT", - "engines": { - "node": ">=18.16.0" - } + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@poppinss/middleware/-/middleware-3.2.7.tgz", + "integrity": "sha512-MZC0Z97ozSz+PpfyxUPUy/ImuthpqvBbY7qku7f4Q2maHz+2uXfchfO8OggXLS6zEJ078l+jpAHZ2rDIRdjeVg==", + "license": "MIT" }, "node_modules/@poppinss/multiparty": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-2.0.1.tgz", - "integrity": "sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-3.0.0.tgz", + "integrity": "sha512-z9jchUzsv7E+7sa4tWHb0+95Byx7w0ydlPGxg3nzyb7h3QlRdeW8/QkU9SexUY4lsT12do93AfNBAhSuOoVqjA==", "license": "MIT", "dependencies": { - "http-errors": "^2.0.0", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" + "http-errors": "^2.0.0" } }, "node_modules/@poppinss/oauth-client": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/oauth-client/-/oauth-client-7.0.2.tgz", - "integrity": "sha512-7zFnfGtd7oLb9Ox9Kz77QwU8t4IV8PdHIicSkLgXGis1ZfLb/853dm+26xz0dPo0qZCJvbBVelgmDvm+JFMhQw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@poppinss/oauth-client/-/oauth-client-7.2.0.tgz", + "integrity": "sha512-LUCd/fIm2oOeTltnZRSJIxZL9uy9+qHpgtNtxIO+wp8E/1Dd7ogbqIWUFYMufCxTekOoYyQlWOcOQ9rmUw5D5g==", "license": "MIT", "dependencies": { - "@poppinss/exception": "^1.2.2", - "ky": "^1.14.1" + "@poppinss/exception": "^1.2.3", + "ky": "^1.14.3" }, "engines": { "node": ">=24.0.0" @@ -1410,53 +2114,78 @@ } }, "node_modules/@poppinss/prompts": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-3.1.4.tgz", - "integrity": "sha512-3xbwolmX8/G2jZZTRcymc1KysJ6b7vyonauKwyQtt3WOaUTHMFcxTJ/Sdp75ehHFJI1BOVzd4v6BS9pmqTcHlw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-3.1.6.tgz", + "integrity": "sha512-cKHfkID6b3wl1kbHJJRC/pznQ3KnRVydyk7CE38NfTV3VS45BDYCxeZZ7bfDin71qMzITh18lKnu8iuLxBngHA==", "license": "MIT", "dependencies": { - "@poppinss/colors": "^4.1.4", - "@poppinss/exception": "^1.1.0", + "@poppinss/colors": "^4.1.6", + "@poppinss/exception": "^1.2.2", "@poppinss/object-builder": "^1.1.0", "enquirer": "^2.4.1" - }, + } + }, + "node_modules/@poppinss/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@poppinss/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-QzfMhxrRB5EPeGz0l8hTwKZ5dFX6ed0aETGbuD369StCO8Ad3SW4wWBYamOK5IKeM/dfOeKaCwUZPTnGcj+jKg==", + "license": "BSD-3-Clause", "engines": { - "node": ">=18.16.0" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/@poppinss/string": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@poppinss/string/-/string-1.7.1.tgz", - "integrity": "sha512-OrLzv/nGDU6l6dLXIQHe8nbNSWWfuSbpB/TW5nRpZFf49CLuQlIHlSPN9IdSUv2vG+59yGM6LoibsaHn8B8mDw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@poppinss/string/-/string-1.7.2.tgz", + "integrity": "sha512-A182GLDfi36iDCbhDrHB0xzrPM1fO3GHnhCDIdadf8C6eycgct4m7zusbLwEh6GPaj2Pz5BVos7XK16w7tZ7wQ==", "license": "MIT", "dependencies": { "@types/pluralize": "^0.0.33", "case-anything": "^3.1.2", "pluralize": "^8.0.0", - "slugify": "^1.6.6" + "slugify": "^1.6.9" } }, - "node_modules/@poppinss/utils": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-6.10.1.tgz", - "integrity": "sha512-da+MMyeXhBaKtxQiWPfy7+056wk3lVIhioJnXHXkJ2/OHDaZfFcyKHNl1R06sdYO8lIRXcXdoZ6LO2ARmkAREA==", + "node_modules/@poppinss/ts-exec": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@poppinss/ts-exec/-/ts-exec-1.4.4.tgz", + "integrity": "sha512-jQLbeQG3n9B+hpygIAQpNaNd3y9+7sLn0Jioo9qEo84Vd3XeRMKr3Qql/u2bixzONO2+RsBbzEJ3AWb2iCPARw==", + "dev": true, "license": "MIT", "dependencies": { - "@poppinss/exception": "^1.2.1", - "@poppinss/object-builder": "^1.1.0", - "@poppinss/string": "^1.3.0", - "flattie": "^1.1.1", - "safe-stable-stringify": "^2.5.0", - "secure-json-parse": "^4.0.0" + "@swc/core": "~1.15.11", + "get-tsconfig": "^4.13.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=24.0.0" + } + }, + "node_modules/@poppinss/types": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@poppinss/types/-/types-1.2.1.tgz", + "integrity": "sha512-qUYnzl0m9HJTWsXtr8Xo7CwDx6wcjrvo14bOVbIMIlKJCzKrm3LX55dRTDr1/x4PpSvKVgmxvC6Ly2YiqXKOvQ==", + "license": "MIT" + }, + "node_modules/@poppinss/utils": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-7.0.1.tgz", + "integrity": "sha512-mveSvLI2YPC114mK5HCuSYfUtjpClf1wHG1VCqZJCp4U2ypPhIt62Iku5urh0kPAFvnvCVHx2bXBSH14qMTOlQ==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.3", + "@poppinss/object-builder": "^1.1.0", + "@poppinss/string": "^1.7.1", + "@poppinss/types": "^1.2.1", + "flattie": "^1.1.1" } }, "node_modules/@poppinss/validator-lite": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@poppinss/validator-lite/-/validator-lite-2.1.0.tgz", - "integrity": "sha512-CfT8EPeB7jKxjCb5+KP32iu/0BB7cKlRRqMBcCwzky0WgFACsFlRtvHsy+CkOszHmNyOdoH3WoyMyoxVCu9qEw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@poppinss/validator-lite/-/validator-lite-2.1.2.tgz", + "integrity": "sha512-UhSG1ouT6r67VbEFHK/8ax3EMZYHioew9PqGmEZjV41G15aPZi6cyhXtBVvF9xqkHMflA5V680k7bQzV0kfD5w==", "license": "MIT" }, "node_modules/@sec-ant/readable-stream": { @@ -1467,19 +2196,19 @@ "license": "MIT" }, "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", "devOptional": true, "license": "MIT" }, "node_modules/@sindresorhus/is": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", - "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-8.0.0.tgz", + "integrity": "sha512-YvOsokBE5NsyHuXMnwEVB7lgFk6lX8F4OXCruYVgFII0hUHof0RGUvhMoabVt9hRqbg+qVzayzEG24RCcxcYeA==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=22" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" @@ -1499,40 +2228,48 @@ } }, "node_modules/@speed-highlight/core": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.7.tgz", - "integrity": "sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==", - "devOptional": true, + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.15.tgz", + "integrity": "sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==", "license": "CC0-1.0" }, - "node_modules/@stylistic/eslint-plugin-ts": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.13.0.tgz", - "integrity": "sha512-nooe1oTwz60T4wQhZ+5u0/GAu3ygkKF9vPPZeRn/meG71ntQ0EZXVOKEonluAYl/+CV2T+nN0dknHa4evAW13Q==", + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@stylistic/eslint-plugin": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.10.0.tgz", + "integrity": "sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.13.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/types": "^8.56.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": ">=8.40.0" + "eslint": "^9.0.0 || ^10.0.0" } }, "node_modules/@swc/core": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.7.tgz", - "integrity": "sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.33.tgz", + "integrity": "sha512-jOlwnFV2xhuuZeAUILGFULeR6vDPfijEJ57evfocwznQldLU3w2cZ9bSDryY9ip+AsM3r1NJKzf47V2NXebkeQ==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.17" + "@swc/types": "^0.1.26" }, "engines": { "node": ">=10" @@ -1542,19 +2279,21 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.10.7", - "@swc/core-darwin-x64": "1.10.7", - "@swc/core-linux-arm-gnueabihf": "1.10.7", - "@swc/core-linux-arm64-gnu": "1.10.7", - "@swc/core-linux-arm64-musl": "1.10.7", - "@swc/core-linux-x64-gnu": "1.10.7", - "@swc/core-linux-x64-musl": "1.10.7", - "@swc/core-win32-arm64-msvc": "1.10.7", - "@swc/core-win32-ia32-msvc": "1.10.7", - "@swc/core-win32-x64-msvc": "1.10.7" + "@swc/core-darwin-arm64": "1.15.33", + "@swc/core-darwin-x64": "1.15.33", + "@swc/core-linux-arm-gnueabihf": "1.15.33", + "@swc/core-linux-arm64-gnu": "1.15.33", + "@swc/core-linux-arm64-musl": "1.15.33", + "@swc/core-linux-ppc64-gnu": "1.15.33", + "@swc/core-linux-s390x-gnu": "1.15.33", + "@swc/core-linux-x64-gnu": "1.15.33", + "@swc/core-linux-x64-musl": "1.15.33", + "@swc/core-win32-arm64-msvc": "1.15.33", + "@swc/core-win32-ia32-msvc": "1.15.33", + "@swc/core-win32-x64-msvc": "1.15.33" }, "peerDependencies": { - "@swc/helpers": "*" + "@swc/helpers": ">=0.5.17" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -1563,9 +2302,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.7.tgz", - "integrity": "sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.33.tgz", + "integrity": "sha512-N+L0uXhuO7FIfzqwgxmzv0zIpV0qEp8wPX3QQs2p4atjMoywup2JTeDlXPw+z9pWJGCae3JjM+tZ6myclI+2gA==", "cpu": [ "arm64" ], @@ -1580,9 +2319,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.7.tgz", - "integrity": "sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.33.tgz", + "integrity": "sha512-/Il4QHSOhV4FekbsDtkrNmKbsX26oSysvgrRswa/RYOHXAkwXDbB4jaeKq6PsJLSPkzJ2KzQ061gtBnk0vNHfA==", "cpu": [ "x64" ], @@ -1597,9 +2336,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.7.tgz", - "integrity": "sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.33.tgz", + "integrity": "sha512-C64hBnBxq4viOPQ8hlx+2lJ23bzZBGnjw7ryALmS+0Q3zHmwO8lw1/DArLENw4Q18/0w5wdEO1k3m1wWNtKGqQ==", "cpu": [ "arm" ], @@ -1614,13 +2353,16 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.7.tgz", - "integrity": "sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.33.tgz", + "integrity": "sha512-TRJfnJbX3jqpxRDRoieMzRiCBS5jOmXNb3iQXmcgjFEHKLnAgK1RZRU8Cq1MsPqO4jAJp/ld1G4O3fXuxv85uw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -1631,13 +2373,56 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.7.tgz", - "integrity": "sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.33.tgz", + "integrity": "sha512-il7tYM+CpUNzieQbwAjFT1P8zqAhmGWNAGhQZBnxurXZ0aNn+5nqYFTEUKNZl7QibtT0uQXzTZrNGHCIj6Y1Og==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-ppc64-gnu": { + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.33.tgz", + "integrity": "sha512-ZtNBwN0Z7CFj9Il0FcPaKdjgP7URyKu/3RfH46vq+0paOBqLj4NYldD6Qo//Duif/7IOtAraUfDOmp0PLAufog==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-s390x-gnu": { + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.33.tgz", + "integrity": "sha512-De1IyajoOmhOYYjw/lx66bKlyDpHZTueqwpDrWgf5O7T6d1ODeJJO9/OqMBmrBQc5C+dNnlmIufHsp4QVCWufA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -1648,13 +2433,16 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.7.tgz", - "integrity": "sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.33.tgz", + "integrity": "sha512-mGTH0YxmUN+x6vRN/I6NOk5X0ogNktkwPnJ94IMvR7QjhRDwL0O8RXEDhyUM0YtwWrryBOqaJQBX4zruxEPRGw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -1665,13 +2453,16 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.7.tgz", - "integrity": "sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.33.tgz", + "integrity": "sha512-hj628ZkSEJf6zMf5VMbYrG2O6QqyTIp2qwY6VlCjvIa9lAEZ5c2lfPblCLVGYubTeLJDxadLB/CxqQYOQABeEQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -1682,9 +2473,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.7.tgz", - "integrity": "sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.33.tgz", + "integrity": "sha512-GV2oohtN2/5+KSccl86VULu3aT+LrISC8uzgSq0FRnikpD+Zwc+sBlXmoKQ+Db6jI57ITUOIB8jRkdGMABC29g==", "cpu": [ "arm64" ], @@ -1699,9 +2490,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.7.tgz", - "integrity": "sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.33.tgz", + "integrity": "sha512-gtyvzSNR8DHKfFEA2uqb8Ld1myqi6uEg2jyeUq3ikn5ytYs7H8RpZYC8mdy4NXr8hfcdJfCLXPlYaqqfBXpoEQ==", "cpu": [ "ia32" ], @@ -1716,9 +2507,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.7.tgz", - "integrity": "sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==", + "version": "1.15.33", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.33.tgz", + "integrity": "sha512-d6fRqQSkJI+kmMEBWaDQ7TMl8+YjLYbwRUPZQ9DY0ORBJeTzOrG0twvfvlZ2xgw6jA0ScQKgfBm4vHLSLl5Hqg==", "cpu": [ "x64" ], @@ -1740,9 +2531,9 @@ "license": "Apache-2.0" }, "node_modules/@swc/types": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.21.tgz", - "integrity": "sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==", + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.26.tgz", + "integrity": "sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1773,54 +2564,26 @@ "license": "MIT" }, "node_modules/@ts-morph/common": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz", - "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.28.1.tgz", + "integrity": "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==", "devOptional": true, "license": "MIT", "dependencies": { - "fast-glob": "^3.3.2", - "minimatch": "^9.0.4", - "mkdirp": "^3.0.1", - "path-browserify": "^1.0.1" + "minimatch": "^10.0.1", + "path-browserify": "^1.0.1", + "tinyglobby": "^0.2.14" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/chai": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.1.tgz", - "integrity": "sha512-iu1JLYmGmITRzUgNiLMZD3WCoFzpYtueuyAgHTXqgwSRAMIlFTnZqG6/xenkpUGRJEzSfklUTI4GNSzks/dc0w==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "devOptional": true, "license": "MIT", "dependencies": { - "@types/deep-eql": "*" + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, "node_modules/@types/cookiejar": { @@ -1838,9 +2601,9 @@ "license": "MIT" }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, @@ -1858,9 +2621,9 @@ "license": "MIT" }, "node_modules/@types/luxon": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.6.2.tgz", - "integrity": "sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.7.1.tgz", + "integrity": "sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg==", "dev": true, "license": "MIT" }, @@ -1872,9 +2635,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", - "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", "devOptional": true, "license": "MIT", "dependencies": { @@ -1894,12 +2657,6 @@ "integrity": "sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==", "license": "MIT" }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "license": "MIT" - }, "node_modules/@types/superagent": { "version": "8.1.9", "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz", @@ -1914,27 +2671,26 @@ } }, "node_modules/@types/validator": { - "version": "13.12.3", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.3.tgz", - "integrity": "sha512-2ipwZ2NydGQJImne+FhNdhgRM37e9lCev99KnqkbFHd94Xn/mErARWI1RSLem1QA19ch5kOhzIZd7e8CA2FI8g==", + "version": "13.15.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==", "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz", - "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz", + "integrity": "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/type-utils": "8.29.1", - "@typescript-eslint/utils": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/type-utils": "8.59.2", + "@typescript-eslint/utils": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1944,23 +2700,33 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "@typescript-eslint/parser": "^8.59.2", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz", - "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.2.tgz", + "integrity": "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1970,19 +2736,41 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz", + "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.59.2", + "@typescript-eslint/types": "^8.59.2", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", - "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz", + "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1" + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1992,17 +2780,35 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz", + "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz", - "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz", + "integrity": "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.1", - "@typescript-eslint/utils": "8.29.1", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/utils": "8.59.2", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2012,14 +2818,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", - "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz", + "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==", "dev": true, "license": "MIT", "engines": { @@ -2031,20 +2837,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", - "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz", + "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" + "@typescript-eslint/project-service": "8.59.2", + "@typescript-eslint/tsconfig-utils": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2054,20 +2861,20 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", - "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz", + "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2077,19 +2884,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", - "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz", + "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.59.2", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2099,29 +2906,44 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@vinejs/compiler": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@vinejs/compiler/-/compiler-3.0.0.tgz", - "integrity": "sha512-v9Lsv59nR56+bmy2p0+czjZxsLHwaibJ+SV5iK9JJfehlJMa501jUJQqqz4X/OqKXrxtE3uTQmSqjUqzF3B2mw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@vinejs/compiler/-/compiler-4.1.3.tgz", + "integrity": "sha512-UyH7Zn8dkTMLeU+PF2WjCnWkFb2qYaOxAcvp/uXW0njtKNcJOnVJaPsnWYwqewkTcHN47yvOdzosj3kj3RAP5w==", "license": "MIT", "engines": { "node": ">=18.0.0" } }, "node_modules/@vinejs/vine": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@vinejs/vine/-/vine-3.0.1.tgz", - "integrity": "sha512-ZtvYkYpZOYdvbws3uaOAvTFuvFXoQGAtmzeiXu+XSMGxi5GVsODpoI9Xu9TplEMuD/5fmAtBbKb9cQHkWkLXDQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@vinejs/vine/-/vine-4.4.0.tgz", + "integrity": "sha512-cfnNXjs9+f+22d3Eb8koyg2qlCbaT394XBlL4AeEr1WM+NH1omFcXwe1zrkW4hHwPDSfUd4lFUdNO6E+YnTeWQ==", "license": "MIT", "dependencies": { - "@poppinss/macroable": "^1.0.4", - "@types/validator": "^13.12.2", - "@vinejs/compiler": "^3.0.0", - "camelcase": "^8.0.0", - "dayjs": "^1.11.13", + "@poppinss/macroable": "^1.1.0", + "@poppinss/types": "^1.2.1", + "@standard-schema/spec": "^1.1.0", + "@types/validator": "^13.15.10", + "@vinejs/compiler": "^4.1.3", + "camelcase": "^9.0.0", + "dayjs": "^1.11.19", "dlv": "^1.1.3", - "normalize-url": "^8.0.1", - "validator": "^13.12.0" + "normalize-url": "^8.1.1", + "validator": "^13.15.26" }, "engines": { "node": ">=18.16.0" @@ -2133,23 +2955,10 @@ "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", "license": "MIT" }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "bin": { @@ -2169,23 +2978,10 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -2209,9 +3005,9 @@ } }, "node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", "license": "MIT", "dependencies": { "environment": "^1.0.0" @@ -2248,11 +3044,10 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", "license": "MIT" }, "node_modules/argparse": { @@ -2262,15 +3057,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/as-table": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", - "license": "MIT", - "dependencies": { - "printable-characters": "^1.0.42" - } - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -2305,19 +3091,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -2327,12 +3100,37 @@ "node": ">=8.0.0" } }, + "node_modules/await-to-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/await-to-js/-/await-to-js-3.0.0.tgz", + "integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.27.tgz", + "integrity": "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } }, "node_modules/basic-auth": { "version": "2.0.1", @@ -2346,20 +3144,23 @@ "node": ">= 0.8" } }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/bmp-ts": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bmp-ts/-/bmp-ts-1.0.9.tgz", + "integrity": "sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw==", "license": "MIT" }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "devOptional": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/braces": { @@ -2376,9 +3177,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, "funding": [ { @@ -2396,10 +3197,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -2409,13 +3211,29 @@ } }, "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.1.0.tgz", + "integrity": "sha512-c5JxaDrzwRjq3WyJkI1AGR5xy6Gr6udlt7sQPbl09+3ckB+Zo2qqQ2KhCTBr7Q8dHB43bENGYEk4xddrFH/b7A==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2434,6 +3252,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2447,6 +3266,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -2470,21 +3290,21 @@ } }, "node_modules/camelcase": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", - "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-9.0.0.tgz", + "integrity": "sha512-TO9xmyXTZ9HUHI8M1OnvExxYB0eYVS/1e5s7IDMTAoIcwUd+aNcFODs6Xk83mobk0velyHFQgA1yIrvYc6wclw==", "license": "MIT", "engines": { - "node": ">=16" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001713", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz", - "integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==", + "version": "1.0.30001791", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz", + "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==", "dev": true, "funding": [ { @@ -2515,20 +3335,13 @@ } }, "node_modules/chai": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "devOptional": true, "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/chalk": { @@ -2561,6 +3374,13 @@ "node": ">=8" } }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, + "license": "MIT" + }, "node_modules/check-disk-space": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/check-disk-space/-/check-disk-space-3.4.0.tgz", @@ -2570,51 +3390,41 @@ "node": ">=16" } }, - "node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "node_modules/chevrotain": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", - "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.2.0.tgz", + "integrity": "sha512-mHCHTxM51nCklUw9RzRVc0DLjAh/SAUPM4k/zMInlTIo25ldWXOZoPt7XEIk/LwoT4lFVmJcu9g5MHtx371x3A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@chevrotain/cst-dts-gen": "11.0.3", - "@chevrotain/gast": "11.0.3", - "@chevrotain/regexp-to-ast": "11.0.3", - "@chevrotain/types": "11.0.3", - "@chevrotain/utils": "11.0.3", - "lodash-es": "4.17.21" + "@chevrotain/cst-dts-gen": "11.2.0", + "@chevrotain/gast": "11.2.0", + "@chevrotain/regexp-to-ast": "11.2.0", + "@chevrotain/types": "11.2.0", + "@chevrotain/utils": "11.2.0", + "lodash-es": "4.17.23" } }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "devOptional": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/ci-info": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz", - "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ { @@ -2692,12 +3502,6 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -2722,16 +3526,16 @@ } }, "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", + "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "slice-ansi": "^8.0.0", + "string-width": "^8.2.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2817,38 +3621,32 @@ "license": "MIT" }, "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" + "engines": { + "node": ">=18" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/convert-hrtime": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", - "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } + "node_modules/cookie-es": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-3.1.1.tgz", + "integrity": "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==", + "license": "MIT" }, "node_modules/cookiejar": { "version": "2.1.4", @@ -2857,65 +3655,20 @@ "devOptional": true, "license": "MIT" }, - "node_modules/copy-file": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.0.0.tgz", - "integrity": "sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.11", - "p-event": "^6.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/core-js-compat": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", - "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.4" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/cpy": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-11.1.0.tgz", - "integrity": "sha512-QGHetPSSuprVs+lJmMDcivvrBwTKASzXQ5qxFvRC2RFESjjod71bDvFvhxTjDgkNjrrb72AI6JPjfYwxrIy33A==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "copy-file": "^11.0.0", - "globby": "^14.0.2", - "junk": "^4.0.1", - "micromatch": "^4.0.7", - "p-filter": "^4.1.0", - "p-map": "^7.0.2" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2931,38 +3684,20 @@ "node": ">= 8" } }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", - "license": "MIT" - }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": "*" } }, "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", "license": "MIT" }, "node_modules/debug": { @@ -2982,20 +3717,10 @@ } } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "devOptional": true, "license": "MIT", "peerDependencies": { @@ -3007,16 +3732,6 @@ } } }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -3024,6 +3739,58 @@ "dev": true, "license": "MIT" }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3064,48 +3831,17 @@ "wrappy": "1" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "license": "MIT" }, - "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -3117,13 +3853,13 @@ } }, "node_modules/edgejs-parser": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/edgejs-parser/-/edgejs-parser-0.2.14.tgz", - "integrity": "sha512-Qlx1U4bm+3mXwijEGIZBf5RdJpxQUB8AQ8yoSRAatQoHzTX+IW8L3RwKMV99Zw+9LDZI+rMGjBq9xLHUQNMAPw==", + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/edgejs-parser/-/edgejs-parser-0.2.19.tgz", + "integrity": "sha512-KO9pF1JSd6dDL7+hJM1W7PbzdTV/siSCoYbN3Ej84csh4RUBd14NvE4uzm4LOiuph9w/j+YlcBkPyp0C5SOzrQ==", "dev": true, "license": "MIT", "dependencies": { - "chevrotain": "^11.0.3" + "chevrotain": "^11.1.2" } }, "node_modules/ee-first": { @@ -3133,16 +3869,16 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.136", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz", - "integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==", + "version": "1.5.349", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.349.tgz", + "integrity": "sha512-QsWVGyRuY07Aqb234QytTfwd5d9AJlfNIQ5wIOl1L+PZDzI9d9+Fn0FRale/QYlFxt/bUnB0/nLd1jFPGxGK1A==", "dev": true, "license": "ISC" }, "node_modules/emittery": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.1.0.tgz", - "integrity": "sha512-rsX7ktqARv/6UQDgMaLfIqUWAEzzbCQiVh7V9rhDXp6c37yoJcks12NVD+XPkgl4AEavmNhVfrhGoqYwIsMYYA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.2.1.tgz", + "integrity": "sha512-sFz64DCRjirhwHLxofFqxYQm6DCp6o0Ix7jwKQvuCHPn4GMRZNuBZyLPu9Ccmk/QSCAMZt6FOUqA8JZCQvA9fw==", "license": "MIT", "engines": { "node": ">=14.16" @@ -3152,9 +3888,9 @@ } }, "node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, "node_modules/encodeurl": { @@ -3167,10 +3903,10 @@ } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "devOptional": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -3201,16 +3937,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/error-stack-parser-es": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", @@ -3224,6 +3950,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3239,15 +3966,16 @@ } }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "license": "MIT" }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -3295,26 +4023,25 @@ } }, "node_modules/eslint": { - "version": "9.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", - "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.31.0", - "@eslint/plugin-kit": "^0.3.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", @@ -3333,7 +4060,7 @@ "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -3356,27 +4083,30 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", - "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", + "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", "dev": true, "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.11.0" + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.12" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -3400,43 +4130,43 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz", - "integrity": "sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==", + "version": "63.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-63.0.0.tgz", + "integrity": "sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "@eslint-community/eslint-utils": "^4.4.0", - "ci-info": "^4.0.0", + "@babel/helper-validator-identifier": "^7.28.5", + "@eslint-community/eslint-utils": "^4.9.0", + "change-case": "^5.4.4", + "ci-info": "^4.3.1", "clean-regexp": "^1.0.0", - "core-js-compat": "^3.37.0", - "esquery": "^1.5.0", - "globals": "^15.7.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.2.1", - "jsesc": "^3.0.2", + "core-js-compat": "^3.46.0", + "find-up-simple": "^1.0.1", + "globals": "^16.4.0", + "indent-string": "^5.0.0", + "is-builtin-module": "^5.0.0", + "jsesc": "^3.1.0", "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", - "regjsparser": "^0.10.0", - "semver": "^7.6.1", - "strip-indent": "^3.0.0" + "regjsparser": "^0.13.0", + "semver": "^7.7.3", + "strip-indent": "^4.1.1" }, "engines": { - "node": ">=18.18" + "node": "^20.10.0 || >=21.0.0" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.56.0" + "eslint": ">=9.38.0" } }, "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", "dev": true, "license": "MIT", "engines": { @@ -3476,10 +4206,17 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -3488,9 +4225,9 @@ } }, "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -3528,9 +4265,9 @@ } }, "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3583,24 +4320,24 @@ } }, "node_modules/execa": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", - "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", "devOptional": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.3", + "cross-spawn": "^7.0.6", "figures": "^6.1.0", "get-stream": "^9.0.0", - "human-signals": "^8.0.0", + "human-signals": "^8.0.1", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", + "pretty-ms": "^9.2.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" + "yoctocolors": "^2.1.1" }, "engines": { "node": "^18.19.0 || >=20.5.0" @@ -3609,11 +4346,16 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, "node_modules/fast-copy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", - "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", - "dev": true, + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-4.0.3.tgz", + "integrity": "sha512-58apWr0GUiDFM8+3afrO6eYwJBn9ZAhDOzG3L+/9llab/haCARS2UIfffmOurYLwbgDRs8n0rfr6qAAPEAuAQw==", + "devOptional": true, "license": "MIT" }, "node_modules/fast-deep-equal": { @@ -3673,15 +4415,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", @@ -3699,15 +4432,33 @@ } }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "devOptional": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -3738,9 +4489,9 @@ } }, "node_modules/file-type": { - "version": "21.3.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.0.tgz", - "integrity": "sha512-8kPJMIGz1Yt/aPEwOsrR97ZyZaD1Iqm8PClb1nYFclUCkBi0Ma5IsYNQzvSFS9ib51lWyIw5mIT9rWzI/xjpzA==", + "version": "21.3.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.4.tgz", + "integrity": "sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==", "license": "MIT", "dependencies": { "@tokenizer/inflate": "^0.4.1", @@ -3768,18 +4519,18 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-5.0.0.tgz", - "integrity": "sha512-OuWNfjfP05JcpAP3JPgAKUhWefjMRfI5iAoSsvE24ANYWJaepAtlSgWECSVEuRgSXpyNEc9DJwG/TZpgcOqyig==", + "node_modules/find-cache-directory": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-cache-directory/-/find-cache-directory-6.0.0.tgz", + "integrity": "sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==", "devOptional": true, "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" + "pkg-dir": "^8.0.0" }, "engines": { - "node": ">=16" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3806,7 +4557,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=18" @@ -3830,9 +4581,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -3845,10 +4596,41 @@ "node": ">=8" } }, + "node_modules/flydrive": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/flydrive/-/flydrive-2.1.0.tgz", + "integrity": "sha512-464Y3vfAZKI3h+LodtjjFMnMxiItyHTKVGzfb2RBYzPfFl1gG7/RstlXH7bhUgB34h44lO9Cm4ZDW8UEk6Jd5g==", + "license": "MIT", + "dependencies": { + "@humanwhocodes/retry": "^0.4.3", + "@poppinss/utils": "^7.0.0-next.6", + "etag": "^1.8.1", + "mime-types": "^3.0.2" + }, + "engines": { + "node": ">=24.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-s3": "^3.577.0", + "@aws-sdk/s3-request-presigner": "^3.577.0", + "@google-cloud/storage": "^7.10.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-s3": { + "optional": true + }, + "@aws-sdk/s3-request-presigner": { + "optional": true + }, + "@google-cloud/storage": { + "optional": true + } + } + }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "devOptional": true, "license": "MIT", "dependencies": { @@ -3862,6 +4644,29 @@ "node": ">= 6" } }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/formidable": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", @@ -3908,9 +4713,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", "license": "MIT", "engines": { "node": ">=18" @@ -3923,6 +4728,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -3953,9 +4759,9 @@ } }, "node_modules/get-port": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", - "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.2.0.tgz", + "integrity": "sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==", "devOptional": true, "license": "MIT", "engines": { @@ -3969,6 +4775,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "devOptional": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -3978,16 +4785,6 @@ "node": ">= 0.4" } }, - "node_modules/get-source": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", - "license": "Unlicense", - "dependencies": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" - } - }, "node_modules/get-stream": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", @@ -4005,12 +4802,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/getopts": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==", "license": "MIT" }, + "node_modules/gifwrap": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", + "integrity": "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==", + "license": "MIT", + "dependencies": { + "image-q": "^4.0.0", + "omggif": "^1.0.10" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -4036,54 +4856,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", - "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", - "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4092,20 +4869,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "devOptional": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4120,6 +4883,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4145,9 +4909,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -4169,20 +4933,20 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", + "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", "dev": true, "license": "ISC", "dependencies": { - "lru-cache": "^10.0.1" + "lru-cache": "^11.1.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/hot-hook": { @@ -4199,6 +4963,149 @@ "read-package-up": "^11.0.0" } }, + "node_modules/hot-hook/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/hot-hook/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hot-hook/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hot-hook/node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hot-hook/node_modules/parse-imports": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", + "dev": true, + "license": "Apache-2.0 AND MIT", + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/hot-hook/node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hot-hook/node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hot-hook/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/hot-hook/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hot-hook/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -4230,9 +5137,9 @@ } }, "node_modules/iconv-lite": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", - "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -4284,6 +5191,21 @@ "node": ">= 4" } }, + "node_modules/image-q": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", + "license": "MIT", + "dependencies": { + "@types/node": "16.9.1" + } + }, + "node_modules/image-q/node_modules/@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -4301,6 +5223,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "devOptional": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4312,19 +5245,22 @@ } }, "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/index-to-position": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", - "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", "dev": true, "license": "MIT", "engines": { @@ -4367,24 +5303,17 @@ "node": ">= 0.10" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-5.0.0.tgz", + "integrity": "sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==", "dev": true, "license": "MIT", "dependencies": { - "builtin-modules": "^3.3.0" + "builtin-modules": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4405,6 +5334,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "devOptional": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -4415,12 +5360,15 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4438,6 +5386,38 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4487,6 +5467,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -4495,41 +5491,75 @@ "license": "ISC" }, "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", "devOptional": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "devOptional": true, + "node_modules/jimp": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-1.6.1.tgz", + "integrity": "sha512-hNQh6rZtWfSVWSNVmvq87N5BPJsNH7k7I7qyrXf9DOma9xATQk3fsyHazCQe51nCjdkoWdTmh0vD7bjVSLoxxw==", "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.1", + "@jimp/diff": "1.6.1", + "@jimp/js-bmp": "1.6.1", + "@jimp/js-gif": "1.6.1", + "@jimp/js-jpeg": "1.6.1", + "@jimp/js-png": "1.6.1", + "@jimp/js-tiff": "1.6.1", + "@jimp/plugin-blit": "1.6.1", + "@jimp/plugin-blur": "1.6.1", + "@jimp/plugin-circle": "1.6.1", + "@jimp/plugin-color": "1.6.1", + "@jimp/plugin-contain": "1.6.1", + "@jimp/plugin-cover": "1.6.1", + "@jimp/plugin-crop": "1.6.1", + "@jimp/plugin-displace": "1.6.1", + "@jimp/plugin-dither": "1.6.1", + "@jimp/plugin-fisheye": "1.6.1", + "@jimp/plugin-flip": "1.6.1", + "@jimp/plugin-hash": "1.6.1", + "@jimp/plugin-mask": "1.6.1", + "@jimp/plugin-print": "1.6.1", + "@jimp/plugin-quantize": "1.6.1", + "@jimp/plugin-resize": "1.6.1", + "@jimp/plugin-rotate": "1.6.1", + "@jimp/plugin-threshold": "1.6.1", + "@jimp/types": "1.6.1", + "@jimp/utils": "1.6.1" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" } }, "node_modules/joycon": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" } }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "license": "BSD-3-Clause" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4570,13 +5600,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4633,9 +5656,79 @@ } }, "node_modules/knex": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz", - "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/knex/-/knex-3.2.10.tgz", + "integrity": "sha512-oypTHfrc9i72iyxaUQBKHOxhcr0xM65MPf6FpN02nimsftXwzXprIkLjfXdubvhbu4PMWLp023q8o8CYvHSuZw==", + "license": "MIT", + "dependencies": { + "colorette": "2.0.19", + "commander": "^10.0.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.18.1", + "pg-connection-string": "2.6.2", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "pg-query-stream": "^4.14.0" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex-dynamic-connection": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-5.0.1.tgz", + "integrity": "sha512-7/e1rnxg58dcWJxhi7zBqKesUf8I4Lgd94SvZ5J8ZBDaLV7lS80koUeFBTU+NJnVbRvCyZbZp6hbmZHXjk8+Bw==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "knex": "3.2.7" + }, + "engines": { + "node": ">=24.0.0" + } + }, + "node_modules/knex-dynamic-connection/node_modules/knex": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/knex/-/knex-3.2.7.tgz", + "integrity": "sha512-VxdDE72x7Tc08E5yCu8HqYoeOm0HOjAraOtYiGSAUJTYkydwfSGBOpQqYHrzM5vjLNzw2JDL2vDH8m7DjIjtgA==", "license": "MIT", "dependencies": { "colorette": "2.0.19", @@ -4659,6 +5752,9 @@ "engines": { "node": ">=16" }, + "peerDependencies": { + "pg-query-stream": "^4.14.0" + }, "peerDependenciesMeta": { "better-sqlite3": { "optional": true @@ -4675,6 +5771,9 @@ "pg-native": { "optional": true }, + "pg-query-stream": { + "optional": true + }, "sqlite3": { "optional": true }, @@ -4683,17 +5782,36 @@ } } }, - "node_modules/knex-dynamic-connection": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.2.0.tgz", - "integrity": "sha512-+j6KeUSim0FR8EobOqA1a/TZbN9mahjzHzJgOfQVkv6PUnSqJp70c/5n63M2YVNgNHETyBIUhV8stuQ0T/mG3g==", + "node_modules/knex-dynamic-connection/node_modules/knex/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "license": "MIT", "dependencies": { - "debug": "^4.3.5", - "knex": "^3.1.0" + "ms": "2.1.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/knex-dynamic-connection/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/knex-dynamic-connection/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" } }, "node_modules/knex/node_modules/debug": { @@ -4729,9 +5847,9 @@ } }, "node_modules/ky": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.1.tgz", - "integrity": "sha512-hYje4L9JCmpEQBtudo+v52X5X8tgWXUYyPcxKSuxQNboqufecl9VMWjGiucAFH060AwPXHZuH+WB2rrqfkmafw==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.3.tgz", + "integrity": "sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==", "license": "MIT", "engines": { "node": ">=18" @@ -4754,13 +5872,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4778,15 +5889,15 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", + "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", "dev": true, "license": "MIT" }, @@ -4798,28 +5909,28 @@ "license": "MIT" }, "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-7.2.0.tgz", + "integrity": "sha512-iLs7dGSyjZiUgvrUvuD3FndAxVJk+TywBkkkwUSm9HdYoskJalWg5qVsEiXeufPvRVPbCUmNQewg798rx+sPXg==", "license": "MIT", "dependencies": { - "ansi-escapes": "^7.0.0", + "ansi-escapes": "^7.3.0", "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" + "slice-ansi": "^8.0.0", + "strip-ansi": "^7.2.0", + "wrap-ansi": "^10.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -4828,56 +5939,13 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -4886,40 +5954,30 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/loupe": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", - "devOptional": true, - "license": "MIT" - }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", + "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/luxon": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.6.1.tgz", - "integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", "license": "MIT", "engines": { "node": ">=12" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4934,22 +5992,6 @@ "node": ">= 0.8" } }, - "node_modules/memoize": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.1.0.tgz", - "integrity": "sha512-MMbFhJzh4Jlg/poq1si90XRlTZRDHVqdlz2mPyGJ6kqMpyHUyVpDd5gpFAvVehW64+RA1eKE9Yt8aSLY7w2Kgg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sindresorhus/memoize?sponsor=1" - } - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4985,9 +6027,9 @@ } }, "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "devOptional": true, "license": "MIT", "engines": { @@ -4998,37 +6040,40 @@ } }, "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "devOptional": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=10.0.0" } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/mimic-function": { @@ -5043,27 +6088,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "devOptional": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5073,43 +6108,18 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, + "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "devOptional": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "license": "MIT", - "bin": { - "mustache": "bin/mustache" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -5117,41 +6127,41 @@ "dev": true, "license": "MIT" }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/node-addon-api": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.7.0.tgz", + "integrity": "sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^18 || ^20 || >= 21" } }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", "dev": true, "license": "MIT" }, "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-8.0.0.tgz", + "integrity": "sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^9.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", "license": "MIT", "engines": { "node": ">=14.16" @@ -5194,6 +6204,7 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5202,6 +6213,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "license": "MIT" + }, "node_modules/on-exit-leak-free": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", @@ -5248,6 +6265,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -5266,38 +6304,6 @@ "node": ">= 0.8.0" } }, - "node_modules/p-event": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", - "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-timeout": "^6.1.2" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", - "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-map": "^7.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -5330,50 +6336,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", - "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", - "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/package-manager-detector": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", - "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", - "license": "MIT", - "dependencies": { - "quansync": "^0.2.7" - } + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", @@ -5388,17 +6362,42 @@ "node": ">=6" } }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "license": "MIT", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, "node_modules/parse-imports": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", - "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-3.0.0.tgz", + "integrity": "sha512-IwiqoJANa4O6M76LBWEvoS2iPIUqBOnKG1lV3/J0oVM6V2XjED+mYAXedEMX5xUglVjfGpZOfaEyuOUjBuUE4g==", "license": "Apache-2.0 AND MIT", "dependencies": { - "es-module-lexer": "^1.5.3", + "es-module-lexer": "^1.7.0", "slashes": "^3.0.12" }, "engines": { - "node": ">= 18" + "node": ">= 22" + }, + "funding": { + "url": "https://github.com/sponsors/TomerAberbach" } }, "node_modules/parse-json": { @@ -5419,6 +6418,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-json/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-ms": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", @@ -5465,46 +6477,23 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "license": "MIT" }, - "node_modules/path-type": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", - "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, "node_modules/pg": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.14.1.tgz", - "integrity": "sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.20.0.tgz", + "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==", "license": "MIT", "dependencies": { - "pg-connection-string": "^2.7.0", - "pg-pool": "^3.8.0", - "pg-protocol": "^1.8.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" + "pg-connection-string": "^2.12.0", + "pg-pool": "^3.13.0", + "pg-protocol": "^1.13.0", + "pg-types": "2.2.0", + "pgpass": "1.0.5" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 16.0.0" }, "optionalDependencies": { - "pg-cloudflare": "^1.1.1" + "pg-cloudflare": "^1.3.0" }, "peerDependencies": { "pg-native": ">=3.0.1" @@ -5516,9 +6505,9 @@ } }, "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz", + "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==", "license": "MIT", "optional": true }, @@ -5538,18 +6527,18 @@ } }, "node_modules/pg-pool": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.8.0.tgz", - "integrity": "sha512-VBw3jiVm6ZOdLBTIcXLNdSotb6Iy3uOCwDGFAksZCXmi10nyRvnP2v3jl4d+IsLYRyXf6o9hIm/ZtUzlByNUdw==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.13.0.tgz", + "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==", "license": "MIT", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.8.0.tgz", - "integrity": "sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz", + "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", "license": "MIT" }, "node_modules/pg-types": { @@ -5569,9 +6558,9 @@ } }, "node_modules/pg/node_modules/pg-connection-string": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", - "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.12.0.tgz", + "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==", "license": "MIT" }, "node_modules/pgpass": { @@ -5591,9 +6580,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "devOptional": true, "license": "MIT", "engines": { @@ -5604,83 +6593,67 @@ } }, "node_modules/pino": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.6.0.tgz", - "integrity": "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-10.3.1.tgz", + "integrity": "sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==", "license": "MIT", "dependencies": { + "@pinojs/redact": "^0.4.0", "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^2.0.0", + "pino-abstract-transport": "^3.0.0", "pino-std-serializers": "^7.0.0", - "process-warning": "^4.0.0", + "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", - "thread-stream": "^3.0.0" + "thread-stream": "^4.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/pino-abstract-transport": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz", + "integrity": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==", "license": "MIT", "dependencies": { "split2": "^4.0.0" } }, "node_modules/pino-pretty": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz", - "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==", - "dev": true, + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.1.3.tgz", + "integrity": "sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==", + "devOptional": true, "license": "MIT", "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", - "fast-copy": "^3.0.2", + "fast-copy": "^4.0.0", "fast-safe-stringify": "^2.1.1", "help-me": "^5.0.0", "joycon": "^3.1.1", "minimist": "^1.2.6", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^2.0.0", + "pino-abstract-transport": "^3.0.0", "pump": "^3.0.0", - "secure-json-parse": "^2.4.0", + "secure-json-parse": "^4.0.0", "sonic-boom": "^4.0.1", - "strip-json-comments": "^3.1.1" + "strip-json-comments": "^5.0.2" }, "bin": { "pino-pretty": "bin.js" } }, - "node_modules/pino-pretty/node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/pino-std-serializers": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", - "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", - "license": "MIT" - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "node_modules/pino-pretty/node_modules/strip-json-comments": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", + "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==", "devOptional": true, "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, "engines": { "node": ">=14.16" }, @@ -5688,89 +6661,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "devOptional": true, - "license": "MIT", + "node_modules/pino-std-serializers": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz", + "integrity": "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==", + "license": "MIT" + }, + "node_modules/pixelmatch": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.3.0.tgz", + "integrity": "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==", + "license": "ISC", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "pngjs": "^6.0.0" }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "pixelmatch": "bin/pixelmatch" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { + "node_modules/pixelmatch/node_modules/pngjs": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "license": "MIT", + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/pkg-dir": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-8.0.0.tgz", + "integrity": "sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==", "devOptional": true, "license": "MIT", "dependencies": { - "p-limit": "^4.0.0" + "find-up-simple": "^1.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/pkg-dir/node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=12.20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5785,6 +6713,15 @@ "node": ">=4" } }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "license": "MIT", + "engines": { + "node": ">=14.19.0" + } + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -5795,9 +6732,9 @@ } }, "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5824,6 +6761,19 @@ "node": ">=0.10.0" } }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5835,9 +6785,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, "license": "MIT", "bin": { @@ -5850,10 +6800,22 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-edgejs": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/prettier-edgejs/-/prettier-edgejs-0.2.36.tgz", + "integrity": "sha512-MDhy6uLAxFjnHh9o9uL40wLt4dNvPkQRmnA9JRcwQVad+bKcVSCvvGoZigRL1CQzKCSU17WC1maLTKtHCrAPxQ==", + "deprecated": "This package has been renamed to prettier-plugin-edgejs. Please install that instead.", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "prettier-plugin-edgejs": "latest" + } + }, "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "dev": true, "license": "MIT", "dependencies": { @@ -5864,31 +6826,31 @@ } }, "node_modules/prettier-plugin-edgejs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-edgejs/-/prettier-plugin-edgejs-1.0.0.tgz", - "integrity": "sha512-MUlHVU3OM8AGznwRlYm0Ah0ckX2NCx0A+VoA2Dgl4bce4aGkaPT9JDZN88no6xLrUNbKsukkjk4KMfREPXf47A==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/prettier-plugin-edgejs/-/prettier-plugin-edgejs-1.0.7.tgz", + "integrity": "sha512-IP3dEjxGUXnU9Ev6znBzPBvM6x2nIebP4NUW1Z5g1XEi37FgEzSPmQExkdVOdtf2B6oeC8r4pzIvBobLx7ewMw==", "dev": true, "license": "MIT", "dependencies": { - "css": "^3.0.0", - "edgejs-parser": "^0.2.14", - "prettier": "^3.4.2", + "@adobe/css-tools": "^4.4.4", + "edgejs-parser": "^0.2.19", + "prettier": "^3.8.1", "uglify-js": "^3.19.2" } }, "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "devOptional": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { @@ -5914,9 +6876,9 @@ } }, "node_modules/pretty-ms": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", - "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -5929,16 +6891,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/printable-characters": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", - "license": "Unlicense" - }, "node_modules/process-warning": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.1.tgz", - "integrity": "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", "funding": [ { "type": "github", @@ -5965,10 +6921,10 @@ } }, "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "devOptional": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -5986,9 +6942,10 @@ } }, "node_modules/qs": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", - "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "devOptional": true, "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.1.0" @@ -6000,22 +6957,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/quansync": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", - "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/antfu" - }, - { - "type": "individual", - "url": "https://github.com/sponsors/sxzz" - } - ], - "license": "MIT" - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6043,19 +6984,10 @@ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", "license": "MIT" }, - "node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rate-limiter-flexible": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-7.1.1.tgz", - "integrity": "sha512-lsYRcqRSJrKBNt6pMzBJTiCJP5KnwsGWdObMZxd19JFUJRntM+yuHs4/2bs6NZweSLgpsDcykvzyQaumoslWQg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-9.1.1.tgz", + "integrity": "sha512-imxFjzPCmvDLMe7d2tsgiSQvs5EI2fI9SNymmslAfOqznZhsZ+PqbIjIYKpuSbd3pKovR1aMG47qfCLIO/adVg==", "license": "ISC" }, "node_modules/raw-body": { @@ -6081,223 +7013,64 @@ "license": "MIT" }, "node_modules/read-package-up": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", - "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-12.0.0.tgz", + "integrity": "sha512-Q5hMVBYur/eQNWDdbF4/Wqqr9Bjvtrw2kjGxxBbKLbx8bVCL8gcArjTy8zDUuLGQicftpMuU0riQNcAsbtOVsw==", "dev": true, "license": "MIT", "dependencies": { - "find-up-simple": "^1.0.0", - "read-pkg": "^9.0.0", - "type-fest": "^4.6.0" + "find-up-simple": "^1.0.1", + "read-pkg": "^10.0.0", + "type-fest": "^5.2.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", - "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-10.1.0.tgz", + "integrity": "sha512-I8g2lArQiP78ll51UeMZojewtYgIRCKCWqZEgOO8c/uefTI+XDXvCSXu3+YNUaTNvZzobrL5+SqHjBrByRRTdg==", "dev": true, "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.3", - "normalize-package-data": "^6.0.0", - "parse-json": "^8.0.0", - "type-fest": "^4.6.0", - "unicorn-magic": "^0.1.0" + "@types/normalize-package-data": "^2.4.4", + "normalize-package-data": "^8.0.0", + "parse-json": "^8.3.0", + "type-fest": "^5.4.4", + "unicorn-magic": "^0.4.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/read-pkg/node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", "devOptional": true, "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -6342,34 +7115,26 @@ } }, "node_modules/regjsparser": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", - "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6393,6 +7158,16 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/restore-cursor": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", @@ -6430,6 +7205,19 @@ "node": ">=0.10.0" } }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6455,23 +7243,9 @@ } }, "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, "node_modules/safe-stable-stringify": { @@ -6489,10 +7263,20 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/secure-json-parse": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.1.0.tgz", "integrity": "sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==", + "devOptional": true, "funding": [ { "type": "github", @@ -6506,9 +7290,9 @@ "license": "BSD-3-Clause" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -6534,10 +7318,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "devOptional": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "devOptional": true, "license": "MIT" }, @@ -6574,6 +7371,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -6590,13 +7388,14 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -6609,6 +7408,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -6627,6 +7427,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "devOptional": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -6654,6 +7455,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-xml-to-json": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/simple-xml-to-json/-/simple-xml-to-json-1.2.7.tgz", + "integrity": "sha512-mz9VXphOxQWX3eQ/uXCtm6upltoN0DLx8Zb5T4TFC4FHB7S9FDPGre8CfLWqPWQQH/GrQYd2AXhhVM5LDpYx6Q==", + "license": "MIT", + "engines": { + "node": ">=20.12.2" + } + }, "node_modules/slash": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", @@ -6673,25 +7483,25 @@ "license": "ISC" }, "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", + "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^6.2.3", + "is-fullwidth-code-point": "^5.1.0" }, "engines": { - "node": ">=12" + "node": ">=20" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", "engines": { "node": ">=12" @@ -6701,44 +7511,23 @@ } }, "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz", + "integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==", "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/sonic-boom": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", - "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", + "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -6769,9 +7558,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", - "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", "dev": true, "license": "CC0-1.0" }, @@ -6796,16 +7585,6 @@ "node": ">= 10.x" } }, - "node_modules/stacktracey": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", - "license": "Unlicense", - "dependencies": { - "as-table": "^1.0.36", - "get-source": "^2.0.12" - } - }, "node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", @@ -6816,26 +7595,25 @@ } }, "node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -6845,12 +7623,12 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -6885,16 +7663,16 @@ } }, "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", + "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", "dev": true, "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-json-comments": { @@ -6911,9 +7689,9 @@ } }, "node_modules/strtok3": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.4.tgz", - "integrity": "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", + "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==", "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0" @@ -6927,9 +7705,9 @@ } }, "node_modules/superagent": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz", - "integrity": "sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz", + "integrity": "sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -6937,20 +7715,33 @@ "cookiejar": "^2.1.4", "debug": "^4.3.7", "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.4", + "form-data": "^4.0.5", "formidable": "^3.5.4", "methods": "^1.1.2", "mime": "2.6.0", - "qs": "^6.11.2" + "qs": "^6.14.1" }, "engines": { "node": ">=14.18.0" } }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "devOptional": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/supports-color": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", - "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", "license": "MIT", "engines": { "node": ">=18" @@ -6972,14 +7763,13 @@ } }, "node_modules/synckit": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.3.tgz", - "integrity": "sha512-szhWDqNNI9etJUvbZ1/cx1StnZx8yMmFxme48SwR4dty4ioSY50KEZlpv0qAfgc1fpRzuh9hBXEzoCpJ779dLg==", + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.1", - "tslib": "^2.8.1" + "@pkgr/core": "^0.2.9" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -6988,6 +7778,19 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tarn": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", @@ -7007,9 +7810,9 @@ } }, "node_modules/terminal-size": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/terminal-size/-/terminal-size-4.0.0.tgz", - "integrity": "sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/terminal-size/-/terminal-size-4.0.1.tgz", + "integrity": "sha512-avMLDQpUI9I5XFrklECw1ZEUPJhqzcwSWsyyI8blhRLT+8N1jLJWLWWYQpB2q2xthq8xDvjZPISVh53T/+CLYQ==", "license": "MIT", "engines": { "node": ">=18" @@ -7019,12 +7822,15 @@ } }, "node_modules/thread-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", - "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.0.0.tgz", + "integrity": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==", "license": "MIT", "dependencies": { "real-require": "^0.2.0" + }, + "engines": { + "node": ">=20" } }, "node_modules/tildify": { @@ -7036,28 +7842,39 @@ "node": ">=8" } }, - "node_modules/time-span": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", - "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "devOptional": true, "license": "MIT", "dependencies": { - "convert-hrtime": "^5.0.0" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": ">=12" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "license": "MIT" - }, "node_modules/tmp-cache": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tmp-cache/-/tmp-cache-1.1.0.tgz", @@ -7108,9 +7925,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -7121,67 +7938,16 @@ } }, "node_modules/ts-morph": { - "version": "23.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz", - "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-27.0.2.tgz", + "integrity": "sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==", "devOptional": true, "license": "MIT", "dependencies": { - "@ts-morph/common": "~0.24.0", - "code-block-writer": "^13.0.1" + "@ts-morph/common": "~0.28.1", + "code-block-writer": "^13.0.3" } }, - "node_modules/ts-node-maintained": { - "version": "10.9.5", - "resolved": "https://registry.npmjs.org/ts-node-maintained/-/ts-node-maintained-10.9.5.tgz", - "integrity": "sha512-p8LJFxBTE3YZYGcOMxWKEpaY2nz55NyOg+mTDIOW/MrOIUTAAb7+UkleRu5z90P/fCVVv5pXN1/nb92G/tSNyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7196,40 +7962,35 @@ } }, "node_modules/type-fest": { - "version": "4.39.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.1.tgz", - "integrity": "sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==", - "devOptional": true, + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, "engines": { - "node": ">=16" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, "engines": { "node": ">= 0.6" } }, - "node_modules/type-is/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -7245,15 +8006,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.1.tgz", - "integrity": "sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.2.tgz", + "integrity": "sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.29.1", - "@typescript-eslint/parser": "8.29.1", - "@typescript-eslint/utils": "8.29.1" + "@typescript-eslint/eslint-plugin": "8.59.2", + "@typescript-eslint/parser": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/utils": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7263,8 +8025,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/uglify-js": { @@ -7280,18 +8042,6 @@ "node": ">=0.8.0" } }, - "node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "license": "MIT", - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/uint8array-extras": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", @@ -7334,9 +8084,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -7374,12 +8124,14 @@ "punycode": "^2.1.0" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" + "node_modules/utif2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/utif2/-/utif2-4.1.0.tgz", + "integrity": "sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.11" + } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -7393,9 +8145,9 @@ } }, "node_modules/validator": { - "version": "13.15.26", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", - "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "version": "13.15.35", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.35.tgz", + "integrity": "sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==", "license": "MIT", "engines": { "node": ">= 0.10" @@ -7436,33 +8188,27 @@ "node": ">=0.10.0" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "license": "MIT" - }, "node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-10.0.0.tgz", + "integrity": "sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "ansi-styles": "^6.2.3", + "string-width": "^8.2.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -7472,9 +8218,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", "engines": { "node": ">=12" @@ -7484,12 +8230,12 @@ } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -7505,6 +8251,51 @@ "devOptional": true, "license": "ISC" }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", + "license": "MIT" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -7515,22 +8306,12 @@ } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "license": "ISC", "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yocto-queue": { @@ -7547,9 +8328,9 @@ } }, "node_modules/yoctocolors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", - "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", "devOptional": true, "license": "MIT", "engines": { @@ -7560,77 +8341,35 @@ } }, "node_modules/youch": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", - "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.1.tgz", + "integrity": "sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==", "license": "MIT", "dependencies": { - "cookie": "^0.7.1", - "mustache": "^4.2.0", - "stacktracey": "^2.1.8" + "@poppinss/colors": "^4.1.6", + "@poppinss/dumper": "^0.7.0", + "@speed-highlight/core": "^1.2.14", + "cookie-es": "^3.0.1", + "youch-core": "^0.3.3" } }, "node_modules/youch-core": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.2.tgz", - "integrity": "sha512-fusrlIMLeRvTFYLUjJ9KzlGC3N+6MOPJ68HNj/yJv2nz7zq8t4HEviLms2gkdRPUS7F5rZ5n+pYx9r88m6IE1g==", - "devOptional": true, + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", "license": "MIT", "dependencies": { - "@poppinss/exception": "^1.2.0", + "@poppinss/exception": "^1.2.2", "error-stack-parser-es": "^1.0.5" - }, - "engines": { - "node": ">=18" } }, - "node_modules/youch-terminal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.2.3.tgz", - "integrity": "sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==", + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", - "dependencies": { - "kleur": "^4.1.5", - "string-width": "^4.2.3", - "wordwrap": "^1.0.0" - } - }, - "node_modules/youch-terminal/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/youch-terminal/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/youch-terminal/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/youch/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/colinhacks" } } } diff --git a/package.json b/package.json index 893a36c..94a8354 100755 --- a/package.json +++ b/package.json @@ -29,36 +29,41 @@ "#database/*": "./database/*.js", "#start/*": "./start/*.js", "#tests/*": "./tests/*.js", - "#config/*": "./config/*.js" + "#config/*": "./config/*.js", + "#generated/*": "./.adonisjs/server/*.js", + "#transformers/*": "./app/transformers/*.js" }, "devDependencies": { - "@adonisjs/assembler": "^7.8.2", - "@adonisjs/eslint-config": "^2.0.0", + "@adonisjs/assembler": "^8.4.0", + "@adonisjs/eslint-config": "^3.0.0", "@adonisjs/prettier-config": "^1.4.0", - "@adonisjs/tsconfig": "^1.4.0", + "@adonisjs/tsconfig": "^2.0.0", "@japa/api-client": "^3.1.0", "@japa/assert": "^4.0.1", - "@japa/plugin-adonisjs": "^4.0.0", + "@japa/plugin-adonisjs": "^5.2.0", "@japa/runner": "^4.2.0", - "@swc/core": "1.10.7", + "@poppinss/ts-exec": "^1.4.4", "@types/luxon": "^3.6.2", "@types/node": "^22.13.2", "eslint": "^9.20.1", "hot-hook": "^0.4.0", "pino-pretty": "^13.0.0", - "prettier": "^3.5.0", - "ts-node-maintained": "^10.9.5", - "typescript": "~5.7" + "prettier": "^3.8.3", + "typescript": "~5.7", + "youch": "^4.1.1" }, "dependencies": { - "@adonisjs/auth": "^9.3.1", - "@adonisjs/ally": "^5.0.0", - "@adonisjs/core": "^6.17.2", - "@adonisjs/cors": "^2.2.1", - "@adonisjs/limiter": "^2.4.0", - "@adonisjs/lucid": "^21.6.0", - "@vinejs/vine": "^3.0.0", + "@adonisjs/ally": "^6.3.0", + "@adonisjs/auth": "^10.1.0", + "@adonisjs/core": "^7.3.2", + "@adonisjs/cors": "^3.0.0", + "@adonisjs/drive": "^4.0.0", + "@adonisjs/limiter": "^3.0.1", + "@adonisjs/lucid": "^22.4.2", + "@vinejs/vine": "^4.4.0", + "jimp": "^1.6.1", "luxon": "^3.6.1", + "node-addon-api": "^8.7.0", "pg": "^8.14.1", "reflect-metadata": "^0.2.2" }, diff --git a/start/env.ts b/start/env.ts index a64ea83..5d9110b 100755 --- a/start/env.ts +++ b/start/env.ts @@ -35,4 +35,11 @@ export default await Env.create(new URL('../', import.meta.url), { |---------------------------------------------------------- */ LIMITER_STORE: Env.schema.enum(['database', 'memory'] as const), + + /* + |---------------------------------------------------------- + | Variables for configuring the drive package + |---------------------------------------------------------- + */ + DRIVE_DISK: Env.schema.enum(['fs'] as const) }) diff --git a/start/routes.ts b/start/routes.ts index 440c4fa..8a13268 100755 --- a/start/routes.ts +++ b/start/routes.ts @@ -19,16 +19,17 @@ const UsersController = () => import('#controllers/users_controller') const ImagesController = () => import('#controllers/images_controller') const RoomReservationsController = () => import('#controllers/room_reservations_controller') -// Auth routes -router.group(() => { - router.post('/register', [AuthController, 'register']).as('auth.register').use(throttle) - router.post('/login', [AuthController, 'login']).as('auth.login').use(throttle) - router.delete('/logout', [AuthController, 'logout']).as('auth.logout').use(middleware.auth()) - router.get('/me', [AuthController, 'me']).as('auth.me').use(middleware.auth()).use(throttle) -}) -// RestaurantMenuItem routes router .group(() => { + // Auth routes + router.group(() => { + router.post('/register', [AuthController, 'register']).as('auth.register').use(throttle).use(middleware.auth()) + router.post('/login', [AuthController, 'login']).as('auth.login').use(throttle) + router.delete('/logout', [AuthController, 'logout']).as('auth.logout').use(middleware.auth()) + router.get('/me', [AuthController, 'me']).as('auth.me').use(middleware.auth()).use(throttle) + }) + + // RestaurantMenuItem routes router .group(() => { router.get('/', [RestaurantMenuItemsController, 'getAll']).as('menu-items.getAll') @@ -126,11 +127,17 @@ router // Image routes router .group(() => { + router + .get('/', [ImagesController, 'list']) + .as('images.list') + //.use([middleware.auth(), middleware.admin()]) router .post('/upload', [ImagesController, 'upload']) .as('images.upload') .use([middleware.auth(), middleware.admin()]) - router.get('/:filename', [ImagesController, 'show']).as('images.show') + router + .get('/:filename', [ImagesController, 'show']) + .as('images.show') }) .prefix('/images') diff --git a/storage/uploads/9a0f8e40-19b2-4d6b-be32-f2d80d4d07d3.jpg b/storage/uploads/9a0f8e40-19b2-4d6b-be32-f2d80d4d07d3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..03ef6861c681a8af45ddcd8fc0bad013cccbdcea GIT binary patch literal 4839083 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

3-VBbRdGUNzZ5oJQ1Q&1 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

)vGF>UG>!mQy8;@?0YAV>_je|sGjV0g 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