From 6f98de5231e878c634ffd9983f244f966cf0869c Mon Sep 17 00:00:00 2001 From: Kenneth Date: Mon, 27 Jan 2025 00:06:50 +0000 Subject: [PATCH] chore: add fly config & move to npm --- Dockerfile | 8 +- app/entry.client.tsx | 12 + app/entry.server.tsx | 68 + bun.lockb | Bin 148996 -> 0 bytes fly.toml | 22 + package-lock.json | 4979 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 5085 insertions(+), 4 deletions(-) create mode 100644 app/entry.client.tsx create mode 100644 app/entry.server.tsx delete mode 100755 bun.lockb create mode 100644 fly.toml create mode 100644 package-lock.json diff --git a/Dockerfile b/Dockerfile index 207bf93..b6fbf6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,20 @@ -FROM node:20-alpine AS development-dependencies-env +FROM node:22-alpine AS development-dependencies-env COPY . /app WORKDIR /app RUN npm ci -FROM node:20-alpine AS production-dependencies-env +FROM node:22-alpine AS production-dependencies-env COPY ./package.json package-lock.json /app/ WORKDIR /app RUN npm ci --omit=dev -FROM node:20-alpine AS build-env +FROM node:22-alpine AS build-env COPY . /app/ COPY --from=development-dependencies-env /app/node_modules /app/node_modules WORKDIR /app RUN npm run build -FROM node:20-alpine +FROM node:22-alpine COPY ./package.json package-lock.json /app/ COPY --from=production-dependencies-env /app/node_modules /app/node_modules COPY --from=build-env /app/build /app/build diff --git a/app/entry.client.tsx b/app/entry.client.tsx new file mode 100644 index 0000000..08ab4ec --- /dev/null +++ b/app/entry.client.tsx @@ -0,0 +1,12 @@ +import { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; +import { HydratedRouter } from "react-router/dom"; + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/app/entry.server.tsx b/app/entry.server.tsx new file mode 100644 index 0000000..d3bd0d8 --- /dev/null +++ b/app/entry.server.tsx @@ -0,0 +1,68 @@ +import { PassThrough } from "node:stream"; + +import type { AppLoadContext, EntryContext } from "react-router"; +import { createReadableStreamFromReadable } from "@react-router/node"; +import { ServerRouter } from "react-router"; +import { isbot } from "isbot"; +import type { RenderToPipeableStreamOptions } from "react-dom/server"; +import { renderToPipeableStream } from "react-dom/server"; + +export const streamTimeout = 5_000; + +export default function handleRequest( + request: Request, + responseStatusCode: number, + responseHeaders: Headers, + routerContext: EntryContext, + loadContext: AppLoadContext +) { + return new Promise((resolve, reject) => { + let shellRendered = false; + let userAgent = request.headers.get("user-agent"); + + // Ensure requests from bots and SPA Mode renders wait for all content to load before responding + // https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation + let readyOption: keyof RenderToPipeableStreamOptions = + (userAgent && isbot(userAgent)) || routerContext.isSpaMode + ? "onAllReady" + : "onShellReady"; + + const { pipe, abort } = renderToPipeableStream( + , + { + [readyOption]() { + shellRendered = true; + const body = new PassThrough(); + const stream = createReadableStreamFromReadable(body); + + responseHeaders.set("Content-Type", "text/html"); + + resolve( + new Response(stream, { + headers: responseHeaders, + status: responseStatusCode, + }) + ); + + pipe(body); + }, + onShellError(error: unknown) { + reject(error); + }, + onError(error: unknown) { + responseStatusCode = 500; + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } + }, + } + ); + + // Abort the rendering stream after the `streamTimeout` so it has time to + // flush down the rejected boundaries + setTimeout(abort, streamTimeout + 1000); + }); +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 3b03ec88513ef3ab03d24b147ed8db4eed7ed51c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148996 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

l_|x(|z}*MB#>!!_7Pu+3U;B}wf2Qog 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 diff --git a/fly.toml b/fly.toml new file mode 100644 index 0000000..5ddc2e5 --- /dev/null +++ b/fly.toml @@ -0,0 +1,22 @@ +# fly.toml app configuration file generated for track-my-app on 2025-01-26T23:38:07Z +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'track-my-app' +primary_region = 'lhr' + +[build] + +[http_service] + internal_port = 3000 + force_https = true + auto_stop_machines = 'stop' + auto_start_machines = true + min_machines_running = 0 + processes = ['app'] + +[[vm]] + memory = '1gb' + cpu_kind = 'shared' + cpus = 1 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e60dd0e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4979 @@ +{ + "name": "track-my-app", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "track-my-app", + "dependencies": { + "@react-router/node": "^7.1.3", + "@react-router/serve": "^7.1.3", + "clsx": "^2.1.1", + "immer": "^10.1.1", + "isbot": "^5.1.17", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-google-charts": "^5.2.1", + "react-router": "^7.1.3", + "superstruct": "^2.0.2", + "zustand": "^5.0.3" + }, + "devDependencies": { + "@biomejs/biome": "^1.9.4", + "@react-router/dev": "^7.1.3", + "@types/node": "^20", + "@types/react": "^19.0.1", + "@types/react-dom": "^19.0.1", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", + "typescript": "^5.7.2", + "vite": "^5.4.11", + "vite-tsconfig-paths": "^5.1.4" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.7.tgz", + "integrity": "sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@biomejs/biome": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz", + "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", + "dev": true, + "hasInstallScript": true, + "bin": { + "biome": "bin/biome" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/biome" + }, + "optionalDependencies": { + "@biomejs/cli-darwin-arm64": "1.9.4", + "@biomejs/cli-darwin-x64": "1.9.4", + "@biomejs/cli-linux-arm64": "1.9.4", + "@biomejs/cli-linux-arm64-musl": "1.9.4", + "@biomejs/cli-linux-x64": "1.9.4", + "@biomejs/cli-linux-x64-musl": "1.9.4", + "@biomejs/cli-win32-arm64": "1.9.4", + "@biomejs/cli-win32-x64": "1.9.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz", + "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz", + "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz", + "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz", + "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz", + "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz", + "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz", + "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz", + "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.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 + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mjackson/node-fetch-server": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mjackson/node-fetch-server/-/node-fetch-server-0.2.0.tgz", + "integrity": "sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/git": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==", + "dev": true, + "dependencies": { + "@npmcli/git": "^4.1.0", + "glob": "^10.2.2", + "hosted-git-info": "^6.1.1", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "dev": true, + "dependencies": { + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@react-router/dev": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@react-router/dev/-/dev-7.1.3.tgz", + "integrity": "sha512-BPdIk4m8shjfynnkFeR30eH6aawpFHZiWqccWXNFgmFjKBcTQe/j7QTKi6gchceXDau0j2fSLciQ07rYrIGdhw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.8", + "@babel/generator": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/plugin-syntax-decorators": "^7.22.10", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/preset-typescript": "^7.21.5", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.22.5", + "@npmcli/package-json": "^4.0.1", + "@react-router/node": "7.1.3", + "arg": "^5.0.1", + "babel-dead-code-elimination": "^1.0.6", + "chokidar": "^4.0.0", + "dedent": "^1.5.3", + "es-module-lexer": "^1.3.1", + "exit-hook": "2.2.1", + "fs-extra": "^10.0.0", + "gunzip-maybe": "^1.4.2", + "jsesc": "3.0.2", + "lodash": "^4.17.21", + "pathe": "^1.1.2", + "picocolors": "^1.1.1", + "picomatch": "^2.3.1", + "prettier": "^2.7.1", + "react-refresh": "^0.14.0", + "semver": "^7.3.7", + "set-cookie-parser": "^2.6.0", + "valibot": "^0.41.0", + "vite-node": "3.0.0-beta.2" + }, + "bin": { + "react-router": "bin.js" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@react-router/serve": "^7.1.3", + "react-router": "^7.1.3", + "typescript": "^5.1.0", + "vite": "^5.1.0 || ^6.0.0", + "wrangler": "^3.28.2" + }, + "peerDependenciesMeta": { + "@react-router/serve": { + "optional": true + }, + "typescript": { + "optional": true + }, + "wrangler": { + "optional": true + } + } + }, + "node_modules/@react-router/express": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@react-router/express/-/express-7.1.3.tgz", + "integrity": "sha512-uaES20anbbqnkObwx8PtU2/gLqCI+CCbAAMxM8P3yMIHFtsxLmd2cwjJ9Spab8TSFRGZNPhpBpLJeqygKtUvUQ==", + "dependencies": { + "@react-router/node": "7.1.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "express": "^4.17.1", + "react-router": "7.1.3", + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@react-router/node": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@react-router/node/-/node-7.1.3.tgz", + "integrity": "sha512-xNyPafKkjd5Tyn0/6ZR14Q6ky5+ucEfAWYI+0phu2/DUFjovLLguTQ3G9QDbpL6zzb6wtpX0uYJCtLnbsXJ+xg==", + "dependencies": { + "@mjackson/node-fetch-server": "^0.2.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.19.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react-router": "7.1.3", + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@react-router/serve": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@react-router/serve/-/serve-7.1.3.tgz", + "integrity": "sha512-Wxtrv5bUgE+AznN0JM12dg5lTMZDr4lhS7wRiHe8OgATes/EuLc8URnU7kGfoE/1OEbeadX49Qpw8qVSqMHeEQ==", + "dependencies": { + "@react-router/express": "7.1.3", + "@react-router/node": "7.1.3", + "compression": "^1.7.4", + "express": "^4.19.2", + "get-port": "5.1.1", + "morgan": "^1.10.0", + "source-map-support": "^0.5.21" + }, + "bin": { + "react-router-serve": "bin.js" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react-router": "7.1.3" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz", + "integrity": "sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.0.tgz", + "integrity": "sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.0.tgz", + "integrity": "sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.0.tgz", + "integrity": "sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.0.tgz", + "integrity": "sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.0.tgz", + "integrity": "sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.0.tgz", + "integrity": "sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.0.tgz", + "integrity": "sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.0.tgz", + "integrity": "sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.0.tgz", + "integrity": "sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.0.tgz", + "integrity": "sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.0.tgz", + "integrity": "sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.0.tgz", + "integrity": "sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.0.tgz", + "integrity": "sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.0.tgz", + "integrity": "sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.0.tgz", + "integrity": "sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.0.tgz", + "integrity": "sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.0.tgz", + "integrity": "sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.0.tgz", + "integrity": "sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.17.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz", + "integrity": "sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/react": { + "version": "19.0.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", + "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", + "devOptional": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", + "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", + "dev": true, + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-dead-code-elimination": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/babel-dead-code-elimination/-/babel-dead-code-elimination-1.0.8.tgz", + "integrity": "sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + } + }, + "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 + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "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/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", + "dev": true, + "dependencies": { + "pako": "~0.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "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==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.88", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", + "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "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, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true + }, + "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==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "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==", + "dev": true + }, + "node_modules/gunzip-maybe": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", + "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", + "dev": true, + "dependencies": { + "browserify-zlib": "^0.1.4", + "is-deflate": "^1.0.0", + "is-gzip": "^1.0.0", + "peek-stream": "^1.1.0", + "pumpify": "^1.3.3", + "through2": "^2.0.3" + }, + "bin": { + "gunzip-maybe": "bin.js" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", + "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-deflate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", + "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbot": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-5.1.21.tgz", + "integrity": "sha512-0q3naRVpENL0ReKHeNcwn/G7BDynp0DqZUckKyFtM9+hmpnPqgm8+8wbjiVZ0XNhq1wPQV28/Pb8Snh5adeUHA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "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 + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "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==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/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 + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/peek-stream": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", + "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "duplexify": "^3.5.0", + "through2": "^2.0.3" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "node_modules/react-google-charts": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-google-charts/-/react-google-charts-5.2.1.tgz", + "integrity": "sha512-mCbPiObP8yWM5A9ogej7Qp3/HX4EzOwuEzUYvcfHtL98Xt4V/brD14KgfDzSNNtyD48MNXCpq5oVaYKt0ykQUQ==", + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", + "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/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==", + "dev": true + }, + "node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz", + "integrity": "sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.0", + "@rollup/rollup-android-arm64": "4.32.0", + "@rollup/rollup-darwin-arm64": "4.32.0", + "@rollup/rollup-darwin-x64": "4.32.0", + "@rollup/rollup-freebsd-arm64": "4.32.0", + "@rollup/rollup-freebsd-x64": "4.32.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", + "@rollup/rollup-linux-arm-musleabihf": "4.32.0", + "@rollup/rollup-linux-arm64-gnu": "4.32.0", + "@rollup/rollup-linux-arm64-musl": "4.32.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", + "@rollup/rollup-linux-riscv64-gnu": "4.32.0", + "@rollup/rollup-linux-s390x-gnu": "4.32.0", + "@rollup/rollup-linux-x64-gnu": "4.32.0", + "@rollup/rollup-linux-x64-musl": "4.32.0", + "@rollup/rollup-win32-arm64-msvc": "4.32.0", + "@rollup/rollup-win32-ia32-msvc": "4.32.0", + "@rollup/rollup-win32-x64-msvc": "4.32.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "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" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "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==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "node_modules/stream-slice": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/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==", + "dev": true + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tsconfck": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz", + "integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==", + "dev": true, + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, + "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==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici": { + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", + "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/valibot": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.41.0.tgz", + "integrity": "sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==", + "dev": true, + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.0.0-beta.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.0-beta.2.tgz", + "integrity": "sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.0", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0 || ^6.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", + "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } +}