+8
.env.example
+8
.env.example
-76
Caddyfile
-76
Caddyfile
···
1
-
{
2
-
storage file_system /data/
3
-
debug
4
-
pki {
5
-
ca hayden {
6
-
name "Hayden"
7
-
}
8
-
}
9
-
}
10
-
11
-
api.dev.hayden.moe {
12
-
tls {
13
-
issuer internal {
14
-
ca hayden
15
-
}
16
-
}
17
-
18
-
reverse_proxy http://host.docker.internal:8080
19
-
}
20
-
21
-
cookware.dev.hayden.moe {
22
-
tls {
23
-
issuer internal {
24
-
ca hayden
25
-
}
26
-
}
27
-
28
-
reverse_proxy http://host.docker.internal:5173
29
-
30
-
handle_path /xrpc/* {
31
-
rewrite * /xrpc{uri}
32
-
reverse_proxy http://host.docker.internal:8080
33
-
}
34
-
handle_path /api/* {
35
-
rewrite * /api{uri}
36
-
reverse_proxy http://host.docker.internal:8080
37
-
}
38
-
}
39
-
40
-
http://*.trycloudflare.com {
41
-
reverse_proxy http://host.docker.internal:5173
42
-
43
-
handle_path /xrpc/* {
44
-
rewrite * /xrpc{uri}
45
-
reverse_proxy http://host.docker.internal:8080
46
-
}
47
-
handle_path /oauth/* {
48
-
rewrite * /oauth{uri}
49
-
reverse_proxy http://host.docker.internal:8080
50
-
}
51
-
handle_path /api/* {
52
-
rewrite * /api{uri}
53
-
reverse_proxy http://host.docker.internal:8080
54
-
}
55
-
}
56
-
57
-
acme.dev.hayden.moe {
58
-
tls {
59
-
issuer internal {
60
-
ca hayden
61
-
}
62
-
}
63
-
acme_server {
64
-
ca hayden
65
-
}
66
-
}
67
-
68
-
turso.dev.hayden.moe {
69
-
tls {
70
-
issuer internal {
71
-
ca hayden
72
-
}
73
-
}
74
-
75
-
reverse_proxy http://libsql:8080
76
-
}
-14
Dockerfile
-14
Dockerfile
···
1
-
FROM node:22-slim AS base
2
-
ENV PNPM_HOME="/pnpm"
3
-
ENV PATH="$PNPM_HOME:$PATH"
4
-
RUN corepack enable
5
-
6
-
FROM base AS build
7
-
WORKDIR /usr/src/app
8
-
COPY pnpm-lock.yaml .
9
-
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm fetch
10
-
COPY . .
11
-
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
12
-
13
-
ARG VITE_API_SERVICE
14
-
RUN pnpm run -r build
+32
Justfile
+32
Justfile
···
1
+
config_dir := justfile_directory() / "config"
2
+
apps_dir := justfile_directory() / "apps"
3
+
libs_dir := justfile_directory() / "apps"
4
+
5
+
ghcr_registry := "ghcr.io/recipes-blue/recipes.blue"
6
+
ghcr_tag := "dev-" + `git rev-parse --short HEAD`
7
+
8
+
[private]
9
+
cbuild file repo target *args:
10
+
docker build . \
11
+
--tag "{{ ghcr_registry }}/{{ repo }}:{{ ghcr_tag }}" \
12
+
--file "{{ file }}" \
13
+
--target "{{ target }}" \
14
+
{{ args }}
15
+
16
+
[group("docker")]
17
+
cbuild-api:
18
+
just cbuild \
19
+
"{{ apps_dir / "api" / "Dockerfile" }}" \
20
+
api \
21
+
run \
22
+
--build-arg BASE_TAG={{ ghcr_tag }} \
23
+
--build-arg DEPS_TAG={{ ghcr_tag }}
24
+
25
+
[group("docker")]
26
+
cbuild-ingester:
27
+
just cbuild \
28
+
"{{ apps_dir / "ingester" / "Dockerfile" }}" \
29
+
ingester \
30
+
run \
31
+
--build-arg BASE_TAG={{ ghcr_tag }} \
32
+
--build-arg DEPS_TAG={{ ghcr_tag }}
+36
-7
README.md
+36
-7
README.md
···
10
10
11
11
## Requirements
12
12
13
-
- Node.js 22.x LTS
14
-
- [pnpm](https://pnpm.io)
15
-
- A [Turso](https://turso.tech) database
16
-
- Maybe Docker?
13
+
- [Bun](https://bun.sh) 1.3.3+
14
+
- Docker & Docker Compose (for local dev)
17
15
18
16
## Services
19
17
20
-
- [`api`](./apps/api): Runs the API server and hosts the SPA in production
21
-
- [`ingester`](./apps/ingester): Ingests ATProto records from a Jetstream source independently of the API process.
22
-
- [`web`](./apps/web): React SPA, hosted by the API in production.
18
+
- [`api`](./apps/api): Bun server running the XRPC API
19
+
- [`ingester`](./apps/ingester): Ingests ATProto records from Jetstream
20
+
- [`web`](./apps/web): React SPA frontend
21
+
- `libsql`: LibSQL database server
22
+
23
+
## Development
24
+
25
+
1. Copy `.env.example` to `.env`:
26
+
```bash
27
+
cp .env.example .env
28
+
```
29
+
30
+
2. Start LibSQL:
31
+
```bash
32
+
docker compose up -d libsql
33
+
```
34
+
35
+
3. Run migrations:
36
+
```bash
37
+
bun run db:generate # generate migration files
38
+
bun run db:migrate # apply to database
39
+
```
40
+
41
+
4. Start services:
42
+
```bash
43
+
bun run dev # starts all services in dev mode
44
+
```
45
+
46
+
## Production
47
+
48
+
Build and run with Docker:
49
+
```bash
50
+
docker compose up -d
51
+
```
+42
apps/api/Dockerfile
+42
apps/api/Dockerfile
···
1
+
FROM oven/bun:1.3.3 AS base
2
+
WORKDIR /app
3
+
4
+
FROM base AS deps
5
+
COPY package.json bun.lock ./
6
+
COPY apps/api/package.json apps/api/package.json
7
+
COPY apps/ingester/package.json apps/ingester/package.json
8
+
COPY apps/web/package.json apps/web/package.json
9
+
COPY libs/database/package.json libs/database/package.json
10
+
COPY libs/lexicons/package.json libs/lexicons/package.json
11
+
COPY libs/tsconfig/package.json libs/tsconfig/package.json
12
+
13
+
RUN \
14
+
--mount=type=cache,target=/root/.bun/install/cache \
15
+
bun install \
16
+
--frozen-lockfile \
17
+
--filter '@cookware/api'
18
+
19
+
FROM base AS build
20
+
COPY --from=deps /app/node_modules ./node_modules/
21
+
COPY . .
22
+
23
+
RUN bun build /app/apps/api/src/index.ts \
24
+
--compile \
25
+
--minify \
26
+
--sourcemap \
27
+
--bytecode \
28
+
--outfile=/app/dist/api \
29
+
--target=bun \
30
+
--external '@libsql/*'
31
+
32
+
FROM base AS libsql
33
+
WORKDIR /app
34
+
COPY bun.lock ./
35
+
RUN LIBSQL_VERSION=$(grep -oP '"@libsql/client@\K[0-9.]+' bun.lock | head -1) && \
36
+
bun install @libsql/client@${LIBSQL_VERSION} --production
37
+
38
+
FROM rockylinux/rockylinux:9.4-ubi AS run
39
+
ENV NODE_PATH=/app/node_modules
40
+
COPY --from=build /app/dist/api /app/api
41
+
COPY --from=libsql /app/node_modules /app/node_modules
42
+
ENTRYPOINT ["/app/api"]
+20
-49
apps/api/package.json
+20
-49
apps/api/package.json
···
1
1
{
2
-
"name": "@cookware/api",
3
2
"type": "module",
3
+
"name": "@cookware/api",
4
4
"private": true,
5
-
"main": "dist/index.js",
6
-
"publishConfig": {
7
-
"access": "public"
8
-
},
9
5
"scripts": {
10
-
"dev": "NODE_OPTIONS=--use-openssl-ca tsx watch --clear-screen=false src/index.ts | pino-pretty",
11
-
"build": "tsup",
12
-
"start": "NODE_OPTIONS=--use-openssl-ca node dist/index.cjs",
6
+
"build": "bun --bun run check-types && bun --bun run compile",
7
+
"dev": "bun run --hot src/index.ts | pino-pretty",
8
+
"check-types": "tsc --noEmit",
9
+
"compile": "bun build src/index.ts --compile --minify --sourcemap --outfile=dist/api --target=bun",
13
10
"clean": "rimraf dist"
14
11
},
15
12
"dependencies": {
16
-
"@atcute/client": "^2.0.6",
17
-
"@atproto/api": "^0.13.19",
18
-
"@atproto/common": "^0.4.5",
19
-
"@atproto/crypto": "^0.4.2",
20
-
"@atproto/jwk-jose": "^0.1.2",
21
-
"@atproto/oauth-client-node": "^0.2.3",
22
-
"@cookware/database": "workspace:^",
23
-
"@hono/node-server": "^1.13.7",
13
+
"@atcute/atproto": "^3.1.9",
14
+
"@atcute/client": "catalog:",
15
+
"@atcute/identity": "^1.1.3",
16
+
"@atcute/identity-resolver": "^1.1.4",
17
+
"@atcute/lexicons": "catalog:",
18
+
"@atcute/xrpc-server": "^0.1.3",
19
+
"@cookware/database": "workspace:*",
20
+
"@cookware/lexicons": "workspace:*",
24
21
"@libsql/client": "^0.14.0",
25
-
"@sentry/node": "^8.42.0",
26
-
"@skyware/jetstream": "^0.2.1",
27
-
"bufferutil": "^4.0.8",
28
-
"drizzle-orm": "^0.37.0",
29
-
"hono": "^4.6.12",
30
-
"hono-sessions": "^0.7.0",
31
-
"jose": "^5.9.6",
32
-
"pino": "^9.5.0",
33
-
"uint8arrays": "^5.1.0",
34
-
"ws": "^8.18.0",
35
-
"zod": "^3.23.8"
22
+
"drizzle-orm": "catalog:",
23
+
"hono": "^4.10.7",
24
+
"pino": "^9.5.0"
36
25
},
37
26
"devDependencies": {
38
-
"@atcute/bluesky": "^1.0.9",
39
-
"@cookware/lexicons": "workspace:*",
27
+
"@atcute/bluesky": "^3.2.10",
40
28
"@cookware/tsconfig": "workspace:*",
41
-
"@swc/core": "^1.9.3",
42
-
"@types/node": "^22.10.1",
43
-
"@types/ws": "^8.5.13",
29
+
"@types/bun": "catalog:",
44
30
"drizzle-kit": "^0.29.0",
45
-
"pino-pretty": "^13.0.0",
46
-
"rimraf": "^6.0.1",
47
-
"ts-node": "^10.9.2",
48
-
"tsup": "^8.3.5",
49
-
"tsx": "^4.19.2",
50
-
"typescript": "^5.7.2"
51
-
},
52
-
"tsup": {
53
-
"entry": [
54
-
"src",
55
-
"!src/**/__tests__/**",
56
-
"!src/**/*.test.*"
57
-
],
58
-
"splitting": false,
59
-
"sourcemap": true,
60
-
"clean": true,
61
-
"format": "esm"
31
+
"pino-pretty": "^13.1.2",
32
+
"rimraf": "^6.0.1"
62
33
}
63
34
}
-34
apps/api/src/config/env.ts
-34
apps/api/src/config/env.ts
···
1
-
import { z } from "zod";
2
-
3
-
const envSchema = z.object({
4
-
PORT: z.coerce.number().lte(65535).default(8080),
5
-
HOST: z.string().ip().default('0.0.0.0'),
6
-
7
-
PUBLIC_DIR: z.string().default('../web/dist'),
8
-
9
-
CORS_ORIGINS: z
10
-
.string()
11
-
.transform((arg) => arg.split(','))
12
-
.default('http://127.0.0.1:5173,https://cookware.dev.hayden.moe'),
13
-
14
-
PLC_DIRECTORY_URL: z.string().url().default('https://plc.directory'),
15
-
16
-
JWKS_PRIVATE_KEY: z.string().default('{"kty":"EC","x":"pew2xWIyBQ4XSY4gcCuTJBI-oC5rQqQlcDxIN8nN834","y":"aiJFNEFWyKKWGiFKPRvLAU4wdhsfgysfTfTuzTC4LNQ","crv":"P-256","d":"QS-q9RzH1u2Oj8gDiUzLk1qpGxZjKSf-3Z1oKCRL_jQ"}'),
17
-
18
-
SESSION_KEY: z.string().default('bJVS+Dx03A3QWWfW3A5Om5DGx1GKptx+1IGAXzOTpw8='),
19
-
SESSION_TTL: z.number().default(((60 * 60) * 24) * 5), // expire in 5 days
20
-
21
-
SENTRY_DSN: z.string().or(z.undefined()),
22
-
23
-
ENV: z
24
-
.union([
25
-
z.literal('development'),
26
-
z.literal('production'),
27
-
])
28
-
.default('development'),
29
-
});
30
-
31
-
const env = envSchema.parse(process.env);
32
-
33
-
export default env;
34
-
export type Env = z.infer<typeof envSchema>;
+7
-2
apps/api/src/env.d.ts
+7
-2
apps/api/src/env.d.ts
+45
-84
apps/api/src/index.ts
+45
-84
apps/api/src/index.ts
···
1
-
import { serve } from "@hono/node-server";
2
-
import { Hono } from "hono";
3
-
import { rootLogger } from "./logger.js";
4
-
import env from "./config/env.js";
5
-
import { xrpcApp } from "./xrpc/index.js";
6
-
import { cors } from "hono/cors";
7
-
import { ZodError } from "zod";
8
-
import * as Sentry from "@sentry/node"
9
-
import { recipeApp } from "./recipes/index.js";
10
-
import { XRPCError } from "./util/xrpc.js";
11
-
import { getFilePathWithoutDefaultDocument } from "hono/utils/filepath";
12
-
import { readFileSync } from "fs";
1
+
import { XRPCError, XRPCRouter } from '@atcute/xrpc-server';
2
+
import { cors } from '@atcute/xrpc-server/middlewares/cors';
3
+
import { registerGetRecipes } from './xrpc/blue.recipes.feed.getRecipes.js';
4
+
import { registerGetRecipe } from './xrpc/blue.recipes.feed.getRecipe.js';
5
+
import { logMiddleware } from './logger.js';
6
+
import pino from 'pino';
7
+
import { RedisClient } from 'bun';
8
+
import { registerGetProfile } from './xrpc/blue.recipes.actor.getProfile.js';
9
+
import { Hono } from 'hono';
10
+
import { mountXrpcRouter } from './util/hono.js';
13
11
14
-
if (env.SENTRY_DSN) {
15
-
Sentry.init({
16
-
dsn: env.SENTRY_DSN,
17
-
});
18
-
}
12
+
const logger = pino();
13
+
const redis = new RedisClient(Bun.env.REDIS_URL ?? "redis://127.0.0.1:6379/0");
19
14
20
-
const app = new Hono();
21
-
22
-
app.use(cors({
23
-
origin: (origin, _ctx) => {
24
-
if (env.ENV == 'development') {
25
-
return origin;
15
+
const xrpcRouter = new XRPCRouter({
16
+
handleException: (err, _req) => {
17
+
if (err instanceof XRPCError) {
18
+
return err.toResponse();
19
+
} else if (err instanceof Response) {
20
+
return err;
21
+
} else {
22
+
logger.error({ err }, 'Exception thrown during request');
23
+
return Response.json(
24
+
{ error: 'InternalServerError', message: 'an exception happened whilst processing this request' },
25
+
{ status: 500 },
26
+
)
26
27
}
27
-
return env.CORS_ORIGINS.includes(origin)
28
-
? origin
29
-
: 'https://recipes.blue';
30
28
},
31
-
allowHeaders: ['Content-Type', 'Accept'],
32
-
allowMethods: ['POST', 'GET', 'OPTIONS'],
33
-
exposeHeaders: ['Content-Length'],
34
-
maxAge: 600,
35
-
credentials: true,
36
-
}));
37
-
38
-
app.route('/xrpc', xrpcApp);
39
-
app.route('/api/recipes', recipeApp);
40
-
41
-
app.use(async (ctx, next) => {
42
-
try {
43
-
await next();
44
-
} catch (e) {
45
-
if (e instanceof ZodError) {
46
-
ctx.status(400);
47
-
return ctx.json({
48
-
error: 'invalid_data',
49
-
message: e.message,
50
-
});
51
-
} else if (e instanceof XRPCError) {
52
-
return e.hono(ctx);
53
-
}
54
-
55
-
ctx.status(500);
56
-
return ctx.json({
57
-
error: 'internal_server_error',
58
-
message: 'The server could not process the request.',
59
-
});
60
-
}
29
+
middlewares: [
30
+
logMiddleware(logger),
31
+
cors({
32
+
allowedHeaders: ['Content-Type', 'Accept'],
33
+
exposedHeaders: ['Content-Length'],
34
+
}),
35
+
],
61
36
});
62
37
63
-
app.use('/*', async (ctx, next) => {
64
-
if (ctx.req.path == '/client-metadata.json') {
65
-
let path = getFilePathWithoutDefaultDocument({
66
-
filename: 'client-metadata.json',
67
-
root: env.PUBLIC_DIR,
68
-
});
69
-
70
-
const metadata = JSON.parse(readFileSync(`./${path}`).toString());
71
-
return ctx.json(metadata);
72
-
}
38
+
// actor
39
+
registerGetProfile(xrpcRouter, logger, redis);
73
40
74
-
if (ctx.finalized) return next();
75
-
let path = getFilePathWithoutDefaultDocument({
76
-
filename: 'index.html',
77
-
root: env.PUBLIC_DIR,
78
-
})
41
+
// feed
42
+
registerGetRecipes(xrpcRouter, logger, redis);
43
+
registerGetRecipe(xrpcRouter, logger, redis);
79
44
80
-
if (path) {
81
-
path = `./${path}`;
82
-
} else {
83
-
return next();
84
-
}
45
+
const app = new Hono();
85
46
86
-
const index = readFileSync(path).toString();
87
-
return ctx.html(index);
88
-
});
47
+
// mount xrpc router at /xrpc
48
+
const xrpcApp = new Hono();
49
+
mountXrpcRouter(xrpcApp, xrpcRouter);
50
+
app.route('/xrpc', xrpcApp);
89
51
90
-
serve({
52
+
const server = Bun.serve({
53
+
port: process.env.PORT || 3000,
91
54
fetch: app.fetch,
92
-
hostname: env.HOST,
93
-
port: env.PORT,
94
-
}).on('listening', () => {
95
-
rootLogger.info({ port: 8080, host: '0.0.0.0' }, 'Server booted.');
96
55
});
56
+
57
+
logger.info({ url: server.url.toString() }, `Recipes.blue API started up`);
+28
-4
apps/api/src/logger.ts
+28
-4
apps/api/src/logger.ts
···
1
-
import { pino } from "pino";
1
+
import type { FetchMiddleware } from "@atcute/xrpc-server";
2
+
import type { Logger } from "pino";
2
3
3
-
export const rootLogger = pino({ name: 'recipes' });
4
-
export const apiLogger = pino({ name: 'recipes.api' });
5
-
export const authLogger = pino({ name: 'recipes.auth' });
4
+
export const logMiddleware = (logger: Logger): FetchMiddleware => {
5
+
return async (req, next) => {
6
+
const startTime = new Date();
7
+
logger.setBindings({
8
+
request: {
9
+
method: req.method,
10
+
path: new URL(req.url).pathname,
11
+
id: crypto.randomUUID(),
12
+
}
13
+
});
14
+
15
+
logger.info('Request received');
16
+
17
+
const response = await next(req);
18
+
const endTime = new Date();
19
+
20
+
logger.info({
21
+
response: {
22
+
status: response.status,
23
+
durationMs: endTime.getTime() - startTime.getTime(),
24
+
},
25
+
}, 'Finished processing request');
26
+
27
+
return response;
28
+
};
29
+
};
-5
apps/api/src/recipes/index.ts
-5
apps/api/src/recipes/index.ts
+59
-25
apps/api/src/util/api.ts
+59
-25
apps/api/src/util/api.ts
···
1
-
import { XRPC } from '@atcute/client';
2
-
import type { AppBskyActorProfile, BlueRecipesFeedDefs } from '@atcute/client/lexicons';
3
-
import { DID, getDidDoc } from '@cookware/lexicons';
1
+
import type {} from '@atcute/atproto';
2
+
import { CompositeDidDocumentResolver, PlcDidDocumentResolver, WebDidDocumentResolver } from '@atcute/identity-resolver';
3
+
import { CompositeHandleResolver, DohJsonHandleResolver, WellKnownHandleResolver } from '@atcute/identity-resolver';
4
+
import { ActorIdentifier, AtprotoDid, Handle, isHandle } from '@atcute/lexicons/syntax';
5
+
import { isAtprotoDid } from '@atcute/identity';
6
+
import { RedisClient } from 'bun';
7
+
import { ProfileViewBasic } from '../../../../libs/lexicons/dist/types/blue/recipes/actor/defs.js';
8
+
import { Blob, LegacyBlob } from '@atcute/lexicons';
9
+
import { buildCdnUrl } from './cdn.js';
4
10
5
-
export const getAuthorInfo = async (
6
-
did: DID,
7
-
rpc: XRPC,
8
-
): Promise<BlueRecipesFeedDefs.AuthorInfo> => {
9
-
const author = await getDidDoc(did);
10
-
const profile = await rpc.get('com.atproto.repo.getRecord', {
11
-
params: {
12
-
repo: did,
13
-
collection: 'app.bsky.actor.profile',
14
-
rkey: 'self',
15
-
},
16
-
});
17
-
const data = profile.data.value as AppBskyActorProfile.Record;
11
+
const handleResolver = new CompositeHandleResolver({
12
+
strategy: 'race',
13
+
methods: {
14
+
dns: new DohJsonHandleResolver({ dohUrl: 'https://mozilla.cloudflare-dns.com/dns-query' }),
15
+
http: new WellKnownHandleResolver({ fetch }),
16
+
},
17
+
});
18
18
19
-
let info: BlueRecipesFeedDefs.AuthorInfo = {
20
-
did: did,
21
-
handle: author.alsoKnownAs[0]?.substring(5) as string,
22
-
displayName: data.displayName,
23
-
};
19
+
const didResolver = new CompositeDidDocumentResolver({
20
+
methods: {
21
+
plc: new PlcDidDocumentResolver(),
22
+
web: new WebDidDocumentResolver(),
23
+
}
24
+
});
24
25
25
-
if (data.avatar)
26
-
info['avatarUrl'] = `https://cdn.bsky.app/img/avatar_thumbnail/plain/${did}/${data.avatar.ref.$link}@jpeg`;
26
+
const HANDLE_CACHE_TTL = 5 * 60; // 5 minutes
27
+
28
+
export const parseDid = async (id: ActorIdentifier): Promise<AtprotoDid> => {
29
+
if (isAtprotoDid(id)) return id;
30
+
if (isHandle(id)) {
31
+
return await handleResolver.resolve(id);
32
+
}
33
+
throw Error("Invalid DID or Handle!");
34
+
}
27
35
28
-
return info;
29
-
};
36
+
export const getHandle = async (did: AtprotoDid, redis: RedisClient): Promise<Handle> => {
37
+
let handle = await redis.get(`handle:${did}`) as Handle | null;
38
+
if (!handle) {
39
+
const didDoc = await didResolver.resolve(did);
40
+
if (didDoc.alsoKnownAs == null || didDoc.alsoKnownAs.length < 1) {
41
+
throw new Error(`User ${did} had no resolvable DID document.`);
42
+
}
43
+
handle = didDoc.alsoKnownAs[0]!.substring(5) as Handle;
44
+
redis.setex(`handle:${did}`, HANDLE_CACHE_TTL, handle);
45
+
}
46
+
47
+
return handle;
48
+
}
49
+
50
+
export const buildProfileViewBasic = async (author: {
51
+
did: AtprotoDid;
52
+
displayName: string;
53
+
pronouns: string | null;
54
+
avatarRef: Blob | LegacyBlob | null;
55
+
createdAt: Date;
56
+
}, redis: RedisClient): Promise<ProfileViewBasic> => ({
57
+
did: author.did,
58
+
handle: await getHandle(author.did, redis),
59
+
displayName: author.displayName,
60
+
pronouns: author.pronouns ?? undefined,
61
+
avatar: author.avatarRef ? buildCdnUrl('avatar', author.did, author.avatarRef) : undefined,
62
+
createdAt: author.createdAt.toISOString(),
63
+
});
+21
apps/api/src/util/cdn.ts
+21
apps/api/src/util/cdn.ts
···
1
+
import { type Blob, type LegacyBlob } from "@atcute/lexicons";
2
+
import { isBlob, isLegacyBlob } from "@atcute/lexicons/interfaces";
3
+
4
+
const CDN_ROOT = "https://cdn.bsky.app/img/";
5
+
6
+
export const buildCdnUrl = (
7
+
type: 'feed_thumbnail' | 'post_image' | 'avatar',
8
+
did: string,
9
+
blob: Blob | LegacyBlob,
10
+
): string => {
11
+
let ref: string;
12
+
if (isLegacyBlob(blob)) {
13
+
ref = blob.cid;
14
+
} else if (isBlob(blob)) {
15
+
ref = blob.ref.$link;
16
+
} else {
17
+
throw new Error("Invalid blob type");
18
+
}
19
+
20
+
return `${CDN_ROOT}${type}/plain/${did}/${ref}`;
21
+
}
+40
apps/api/src/util/hono.ts
+40
apps/api/src/util/hono.ts
···
1
+
import { XRPCRouter } from '@atcute/xrpc-server';
2
+
import type { Context, Hono } from 'hono';
3
+
4
+
export type ApiContext = {};
5
+
6
+
/**
7
+
* mounts an @atcute/xrpc-server router into hono as a nested route
8
+
*
9
+
* basically just bridges the two request handlers since both are
10
+
* web standard Request/Response. you can optionally pass hono context
11
+
* properties to xrpc handlers via the request object
12
+
*/
13
+
export const mountXrpcRouter = (
14
+
app: Hono,
15
+
router: XRPCRouter,
16
+
injectContext?: (c: Context) => ApiContext,
17
+
) => {
18
+
app.all('*', async (c) => {
19
+
let request = c.req.raw;
20
+
21
+
// if context injector provided, attach properties to request
22
+
if (injectContext) {
23
+
const contextData = injectContext(c);
24
+
request = Object.assign(request, contextData);
25
+
}
26
+
27
+
const response = await router.fetch(request);
28
+
return response;
29
+
});
30
+
};
31
+
32
+
/**
33
+
* helper to extract injected context from xrpc request
34
+
* use this in your xrpc handlers to access hono context data
35
+
*/
36
+
export const getInjectedContext = (
37
+
request: Request
38
+
): ApiContext => {
39
+
return request as any as ApiContext;
40
+
};
-229
apps/api/src/util/jwt.ts
-229
apps/api/src/util/jwt.ts
···
1
-
import * as common from "@atproto/common";
2
-
import { MINUTE } from "@atproto/common";
3
-
import * as crypto from "@atproto/crypto";
4
-
import * as ui8 from "uint8arrays";
5
-
import { XRPCError } from "./xrpc.js";
6
-
import { z } from "zod";
7
-
8
-
export const jwt = z.custom<`${string}.${string}.${string}`>((input) => {
9
-
if (typeof input !== "string") return;
10
-
if (input.split(".").length !== 3) return false;
11
-
return true;
12
-
});
13
-
14
-
type ServiceJwtParams = {
15
-
iss: string;
16
-
aud: string;
17
-
iat?: number;
18
-
exp?: number;
19
-
lxm: string | null;
20
-
keypair: crypto.Keypair;
21
-
};
22
-
23
-
type ServiceJwtHeaders = {
24
-
alg: string;
25
-
} & Record<string, unknown>;
26
-
27
-
type ServiceJwtPayload = {
28
-
iss: string;
29
-
aud: string;
30
-
exp: number;
31
-
lxm?: string;
32
-
jti?: string;
33
-
};
34
-
35
-
export const createServiceJwt = async (
36
-
params: ServiceJwtParams,
37
-
): Promise<string> => {
38
-
const { iss, aud, keypair } = params;
39
-
const iat = params.iat ?? Math.floor(Date.now() / 1e3);
40
-
const exp = params.exp ?? iat + MINUTE / 1e3;
41
-
const lxm = params.lxm ?? undefined;
42
-
const jti = crypto.randomStr(16, "hex");
43
-
const header = {
44
-
typ: "JWT",
45
-
alg: keypair.jwtAlg,
46
-
};
47
-
const payload = common.noUndefinedVals({
48
-
iat,
49
-
iss,
50
-
aud,
51
-
exp,
52
-
lxm,
53
-
jti,
54
-
});
55
-
const toSignStr = `${jsonToB64Url(header)}.${jsonToB64Url(payload)}`;
56
-
const toSign = ui8.fromString(toSignStr, "utf8");
57
-
const sig = await keypair.sign(toSign);
58
-
return `${toSignStr}.${ui8.toString(sig, "base64url")}`;
59
-
};
60
-
61
-
export const createServiceAuthHeaders = async (params: ServiceJwtParams) => {
62
-
const jwt = await createServiceJwt(params);
63
-
return {
64
-
headers: { authorization: `Bearer ${jwt}` },
65
-
};
66
-
};
67
-
68
-
const jsonToB64Url = (json: Record<string, unknown>): string => {
69
-
return common.utf8ToB64Url(JSON.stringify(json));
70
-
};
71
-
72
-
export type VerifySignatureWithKeyFn = (
73
-
key: string,
74
-
msgBytes: Uint8Array,
75
-
sigBytes: Uint8Array,
76
-
alg: string,
77
-
) => Promise<boolean>;
78
-
79
-
export const verifyJwt = async (
80
-
jwtStr: string,
81
-
ownDid: string | null, // null indicates to skip the audience check
82
-
lxm: string | null, // null indicates to skip the lxm check
83
-
getSigningKey: (iss: string, forceRefresh: boolean) => Promise<string>,
84
-
verifySignatureWithKey: VerifySignatureWithKeyFn = cryptoVerifySignatureWithKey,
85
-
): Promise<ServiceJwtPayload> => {
86
-
const jwtParsed = jwt.safeParse(jwtStr);
87
-
if (!jwtParsed.success) {
88
-
throw new XRPCError("poorly formatted jwt", "BadJwt", 401);
89
-
}
90
-
const parts = jwtParsed.data.split(".");
91
-
92
-
const header = parseHeader(parts[0]!);
93
-
94
-
// The spec does not describe what to do with the "typ" claim. We can,
95
-
// however, forbid some values that are not compatible with our use case.
96
-
if (
97
-
// service tokens are not OAuth 2.0 access tokens
98
-
// https://datatracker.ietf.org/doc/html/rfc9068
99
-
header["typ"] === "at+jwt" ||
100
-
// "refresh+jwt" is a non-standard type used by the @atproto packages
101
-
header["typ"] === "refresh+jwt" ||
102
-
// "DPoP" proofs are not meant to be used as service tokens
103
-
// https://datatracker.ietf.org/doc/html/rfc9449
104
-
header["typ"] === "dpop+jwt"
105
-
) {
106
-
throw new XRPCError(
107
-
`Invalid jwt type "${header["typ"]}"`,
108
-
"BadJwtType",
109
-
401,
110
-
);
111
-
}
112
-
113
-
const payload = parsePayload(parts[1]!);
114
-
const sig = parts[2]!;
115
-
116
-
if (Date.now() / 1000 > payload.exp) {
117
-
throw new XRPCError("jwt expired", "JwtExpired", 401);
118
-
}
119
-
if (ownDid !== null && payload.aud !== ownDid) {
120
-
throw new XRPCError(
121
-
"jwt audience does not match service did",
122
-
"BadJwtAudience",
123
-
401,
124
-
);
125
-
}
126
-
if (lxm !== null && payload.lxm !== lxm) {
127
-
throw new XRPCError(
128
-
payload.lxm !== undefined
129
-
? `bad jwt lexicon method ("lxm"). must match: ${lxm}`
130
-
: `missing jwt lexicon method ("lxm"). must match: ${lxm}`,
131
-
"BadJwtLexiconMethod",
132
-
401,
133
-
);
134
-
}
135
-
136
-
const msgBytes = ui8.fromString(parts.slice(0, 2).join("."), "utf8");
137
-
const sigBytes = ui8.fromString(sig, "base64url");
138
-
139
-
const signingKey = await getSigningKey(payload.iss, false);
140
-
const { alg } = header;
141
-
142
-
let validSig: boolean;
143
-
try {
144
-
validSig = await verifySignatureWithKey(
145
-
signingKey,
146
-
msgBytes,
147
-
sigBytes,
148
-
alg,
149
-
);
150
-
} catch (err) {
151
-
throw new XRPCError(
152
-
"could not verify jwt signature",
153
-
"BadJwtSignature",
154
-
401,
155
-
);
156
-
}
157
-
158
-
if (!validSig) {
159
-
// get fresh signing key in case it failed due to a recent rotation
160
-
const freshSigningKey = await getSigningKey(payload.iss, true);
161
-
try {
162
-
validSig =
163
-
freshSigningKey !== signingKey
164
-
? await verifySignatureWithKey(
165
-
freshSigningKey,
166
-
msgBytes,
167
-
sigBytes,
168
-
alg,
169
-
)
170
-
: false;
171
-
} catch (err) {
172
-
throw new XRPCError(
173
-
"could not verify jwt signature",
174
-
"BadJwtSignature",
175
-
401,
176
-
);
177
-
}
178
-
}
179
-
180
-
if (!validSig) {
181
-
throw new XRPCError(
182
-
"jwt signature does not match jwt issuer",
183
-
"BadJwtSignature",
184
-
401,
185
-
);
186
-
}
187
-
188
-
return payload;
189
-
};
190
-
191
-
export const cryptoVerifySignatureWithKey: VerifySignatureWithKeyFn = async (
192
-
key: string,
193
-
msgBytes: Uint8Array,
194
-
sigBytes: Uint8Array,
195
-
alg: string,
196
-
) => {
197
-
return crypto.verifySignature(key, msgBytes, sigBytes, {
198
-
jwtAlg: alg,
199
-
allowMalleableSig: true,
200
-
});
201
-
};
202
-
203
-
const parseB64UrlToJson = (b64: string) => {
204
-
return JSON.parse(common.b64UrlToUtf8(b64));
205
-
};
206
-
207
-
const parseHeader = (b64: string): ServiceJwtHeaders => {
208
-
const header = parseB64UrlToJson(b64);
209
-
if (!header || typeof header !== "object" || typeof header.alg !== "string") {
210
-
throw new XRPCError("poorly formatted jwt", "BadJwt", 401);
211
-
}
212
-
return header;
213
-
};
214
-
215
-
const parsePayload = (b64: string): ServiceJwtPayload => {
216
-
const payload = parseB64UrlToJson(b64);
217
-
if (
218
-
!payload ||
219
-
typeof payload !== "object" ||
220
-
typeof payload.iss !== "string" ||
221
-
typeof payload.aud !== "string" ||
222
-
typeof payload.exp !== "number" ||
223
-
(payload.lxm && typeof payload.lxm !== "string") ||
224
-
(payload.nonce && typeof payload.nonce !== "string")
225
-
) {
226
-
throw new XRPCError("poorly formatted jwt", "BadJwt", 401);
227
-
}
228
-
return payload;
229
-
};
-20
apps/api/src/util/xrpc.ts
-20
apps/api/src/util/xrpc.ts
···
1
-
import { Context } from "hono";
2
-
import { StatusCode } from "hono/utils/http-status";
3
-
4
-
export class XRPCError extends Error {
5
-
constructor(
6
-
message: string,
7
-
public error: string,
8
-
public code: StatusCode,
9
-
) {
10
-
super(message);
11
-
}
12
-
13
-
hono(ctx: Context) {
14
-
ctx.status(this.code);
15
-
return ctx.json({
16
-
error: this.error,
17
-
message: this.message,
18
-
});
19
-
}
20
-
}
+44
apps/api/src/xrpc/blue.recipes.actor.getProfile.ts
+44
apps/api/src/xrpc/blue.recipes.actor.getProfile.ts
···
1
+
import { json, XRPCRouter, XRPCError } from '@atcute/xrpc-server';
2
+
import { BlueRecipesActorGetProfile } from '@cookware/lexicons';
3
+
import { db, eq } from '@cookware/database';
4
+
import { getHandle, parseDid } from '../util/api.js';
5
+
import { Logger } from 'pino';
6
+
import { profilesTable, recipeTable } from '@cookware/database/schema';
7
+
import { RedisClient } from 'bun';
8
+
import { buildCdnUrl } from '../util/cdn.js';
9
+
10
+
export const registerGetProfile = (router: XRPCRouter, _logger: Logger, redis: RedisClient) => {
11
+
router.addQuery(BlueRecipesActorGetProfile.mainSchema, {
12
+
async handler({ params: { actor } }) {
13
+
const where = eq(profilesTable.did, await parseDid(actor));
14
+
const profile = await db.query.profilesTable.findFirst({
15
+
where,
16
+
orderBy: profilesTable.createdAt,
17
+
extras: {
18
+
recipesCount: db.$count(recipeTable, where).as('recipesCount'),
19
+
}
20
+
});
21
+
22
+
if (!profile) {
23
+
throw new XRPCError({
24
+
status: 404,
25
+
error: 'ProfileNotFound',
26
+
description: `Profile for actor ${actor} not found.`,
27
+
});
28
+
}
29
+
30
+
return json({
31
+
did: profile.did,
32
+
handle: await getHandle(profile.did, redis),
33
+
displayName: profile.displayName ?? undefined,
34
+
description: profile.description ?? undefined,
35
+
pronouns: profile.pronouns ?? undefined,
36
+
website: profile.website ?? undefined,
37
+
avatar: profile.avatarRef ? buildCdnUrl('avatar', profile.did, profile.avatarRef) : undefined,
38
+
banner: profile.bannerRef ? buildCdnUrl('feed_thumbnail', profile.did, profile.bannerRef) : undefined,
39
+
recipesCount: profile.recipesCount,
40
+
createdAt: profile.createdAt.toISOString(),
41
+
});
42
+
},
43
+
});
44
+
};
+78
apps/api/src/xrpc/blue.recipes.feed.getRecipe.ts
+78
apps/api/src/xrpc/blue.recipes.feed.getRecipe.ts
···
1
+
import { json, XRPCRouter, XRPCError } from '@atcute/xrpc-server';
2
+
import { BlueRecipesFeedDefs, BlueRecipesFeedGetRecipe, BlueRecipesFeedRecipe } from '@cookware/lexicons';
3
+
import { db, and, or, eq } from '@cookware/database';
4
+
import { buildProfileViewBasic, parseDid } from '../util/api.js';
5
+
import { Logger } from 'pino';
6
+
import { parseResourceUri, ResourceUri } from '@atcute/lexicons';
7
+
import { recipeTable } from '@cookware/database/schema';
8
+
import { isLegacyBlob } from '@atcute/lexicons/interfaces';
9
+
import { RedisClient } from 'bun';
10
+
import { buildCdnUrl } from '../util/cdn.js';
11
+
12
+
const invalidUriError = (uri: string) => new XRPCError({
13
+
status: 400,
14
+
error: 'InvalidURI',
15
+
description: `The provided URI is invalid: ${uri}`,
16
+
});
17
+
18
+
export const registerGetRecipe = (router: XRPCRouter, _logger: Logger, redis: RedisClient) => {
19
+
router.addQuery(BlueRecipesFeedGetRecipe.mainSchema, {
20
+
async handler({ params: { uris } }) {
21
+
const whereClauses = [];
22
+
23
+
for (const uri of uris) {
24
+
const parsed = parseResourceUri(uri);
25
+
if (!parsed.ok) throw invalidUriError(uri);
26
+
27
+
const { repo, collection, rkey } = parsed.value;
28
+
if (!repo) throw invalidUriError(uri);
29
+
if (collection !== BlueRecipesFeedRecipe.mainSchema.object.shape.$type.expected) throw invalidUriError(uri);
30
+
if (!rkey) throw invalidUriError(uri);
31
+
32
+
const did = await parseDid(repo);
33
+
34
+
whereClauses.push(and(eq(recipeTable.did, did), eq(recipeTable.rkey, rkey)));
35
+
}
36
+
37
+
const recipes = await db.query.recipeTable.findMany({
38
+
orderBy: recipeTable.createdAt,
39
+
where: or(...whereClauses),
40
+
with: {
41
+
author: {
42
+
columns: {
43
+
did: true,
44
+
displayName: true,
45
+
pronouns: true,
46
+
avatarRef: true,
47
+
createdAt: true,
48
+
},
49
+
},
50
+
},
51
+
});
52
+
53
+
return json({
54
+
recipes: await Promise.all(
55
+
recipes.map(async ({ author, ...recipe }) => ({
56
+
uri: recipe.uri as ResourceUri,
57
+
author: await buildProfileViewBasic(author, redis),
58
+
cid: recipe.cid,
59
+
rkey: recipe.rkey,
60
+
imageUrl: recipe.imageRef ? buildCdnUrl('post_image', recipe.did, recipe.imageRef) : undefined,
61
+
indexedAt: recipe.ingestedAt.toISOString(),
62
+
record: {
63
+
$type: BlueRecipesFeedRecipe.mainSchema.object.shape.$type.expected,
64
+
title: recipe.title,
65
+
description: recipe.description ?? undefined,
66
+
time: recipe.time ?? undefined,
67
+
serves: recipe.serves ?? undefined,
68
+
ingredients: recipe.ingredients as BlueRecipesFeedRecipe.Ingredient[],
69
+
steps: recipe.steps as BlueRecipesFeedRecipe.Step[],
70
+
image: isLegacyBlob(recipe.imageRef) ? undefined : recipe.imageRef ?? undefined,
71
+
createdAt: recipe.createdAt.toISOString(),
72
+
},
73
+
})),
74
+
),
75
+
});
76
+
},
77
+
});
78
+
};
+79
apps/api/src/xrpc/blue.recipes.feed.getRecipes.ts
+79
apps/api/src/xrpc/blue.recipes.feed.getRecipes.ts
···
1
+
import { db, and, eq } from '@cookware/database';
2
+
import { recipeTable } from '@cookware/database/schema';
3
+
import { BlueRecipesFeedGetRecipes, BlueRecipesFeedRecipe } from '@cookware/lexicons';
4
+
import { json, XRPCRouter } from '@atcute/xrpc-server';
5
+
import { getHandle, parseDid } from '../util/api.js';
6
+
import { ResourceUri } from '@atcute/lexicons/syntax';
7
+
import { Logger } from 'pino';
8
+
import { isLegacyBlob } from '@atcute/lexicons/interfaces';
9
+
import { RedisClient } from 'bun';
10
+
import { buildCdnUrl } from '../util/cdn.js';
11
+
12
+
export const registerGetRecipes = (router: XRPCRouter, _logger: Logger, redis: RedisClient) => {
13
+
router.addQuery(BlueRecipesFeedGetRecipes.mainSchema, {
14
+
async handler({ params: { author, limit, cursor } }) {
15
+
const whereClauses = [];
16
+
if (author) {
17
+
const did = await parseDid(author);
18
+
whereClauses.push(eq(recipeTable.did, did));
19
+
}
20
+
21
+
if (cursor) {
22
+
const { c } = JSON.parse(atob(cursor)) as { c: string };
23
+
whereClauses.push(eq(recipeTable.createdAt, new Date(c)));
24
+
}
25
+
26
+
const recipes = await db.query.recipeTable.findMany({
27
+
orderBy: recipeTable.createdAt,
28
+
limit: limit,
29
+
where: whereClauses ? and(...whereClauses) : undefined,
30
+
with: {
31
+
author: {
32
+
columns: {
33
+
did: true,
34
+
displayName: true,
35
+
pronouns: true,
36
+
avatarRef: true,
37
+
createdAt: true,
38
+
},
39
+
},
40
+
},
41
+
});
42
+
43
+
let nextCursor = '';
44
+
if (recipes.length == limit) {
45
+
const { createdAt } = recipes[limit - 1]!;
46
+
nextCursor = atob(JSON.stringify({ c: createdAt }));
47
+
}
48
+
49
+
return json({
50
+
nextCursor,
51
+
recipes: await Promise.all(recipes.map(async (recipe) => ({
52
+
author: {
53
+
did: recipe.author.did,
54
+
handle: await getHandle(recipe.author.did, redis),
55
+
displayName: recipe.author.displayName,
56
+
avatar: recipe.author.avatarRef ? buildCdnUrl('avatar', recipe.author.did, recipe.author.avatarRef) : undefined,
57
+
pronouns: recipe.author.pronouns ?? undefined,
58
+
createdAt: recipe.author.createdAt.toISOString(),
59
+
},
60
+
cid: recipe.cid,
61
+
rkey: recipe.rkey,
62
+
indexedAt: recipe.ingestedAt.toISOString(),
63
+
record: {
64
+
$type: BlueRecipesFeedRecipe.mainSchema.object.shape.$type.expected,
65
+
title: recipe.title,
66
+
description: recipe.description ?? undefined,
67
+
time: recipe.time ?? undefined,
68
+
serves: recipe.serves ?? undefined,
69
+
ingredients: recipe.ingredients as BlueRecipesFeedRecipe.Ingredient[],
70
+
steps: recipe.steps as BlueRecipesFeedRecipe.Step[],
71
+
image: isLegacyBlob(recipe.imageRef) ? undefined : recipe.imageRef ?? undefined,
72
+
createdAt: recipe.createdAt.toISOString(),
73
+
},
74
+
uri: recipe.uri as ResourceUri,
75
+
}))),
76
+
});
77
+
}
78
+
});
79
+
};
-124
apps/api/src/xrpc/index.ts
-124
apps/api/src/xrpc/index.ts
···
1
-
import { Hono } from 'hono';
2
-
import { db, recipeTable } from '@cookware/database';
3
-
import { and, desc, eq, sql } from 'drizzle-orm';
4
-
import { DID, getDidDoc, getDidFromHandleOrDid } from '@cookware/lexicons';
5
-
import { simpleFetchHandler, XRPC } from '@atcute/client';
6
-
import { AppBskyActorProfile } from '@atproto/api';
7
-
import { BlueRecipesFeedDefs, BlueRecipesFeedGetRecipes } from '@atcute/client/lexicons';
8
-
import { getAuthorInfo } from '../util/api.js';
9
-
10
-
export const xrpcApp = new Hono();
11
-
12
-
xrpcApp.get('/blue.recipes.feed.getRecipes', async ctx => {
13
-
const { did: didQuery } = ctx.req.query();
14
-
15
-
let did: DID | null = null;
16
-
if (didQuery)
17
-
did = await getDidFromHandleOrDid(didQuery);
18
-
19
-
const recipes = await db
20
-
.select({
21
-
rkey: recipeTable.rkey,
22
-
title: recipeTable.title,
23
-
description: recipeTable.description,
24
-
time: recipeTable.time,
25
-
ingredientsCount: sql`json_array_length(${recipeTable.ingredients})`,
26
-
stepsCount: sql`json_array_length(${recipeTable.steps})`,
27
-
createdAt: recipeTable.createdAt,
28
-
authorDid: recipeTable.authorDid,
29
-
uri: sql`concat(${recipeTable.authorDid}, "/", ${recipeTable.rkey})`.as('uri'),
30
-
})
31
-
.from(recipeTable)
32
-
.where(did ? eq(recipeTable.authorDid, did) : undefined)
33
-
.orderBy(desc(recipeTable.createdAt));
34
-
35
-
const rpc = new XRPC({
36
-
handler: simpleFetchHandler({
37
-
service: 'https://public.api.bsky.app',
38
-
}),
39
-
});
40
-
41
-
let authorInfo: BlueRecipesFeedDefs.AuthorInfo | null = null;
42
-
if (did) {
43
-
authorInfo = await getAuthorInfo(did, rpc);
44
-
};
45
-
46
-
const results = [];
47
-
const eachRecipe = async (r: typeof recipes[0]) => ({
48
-
author: authorInfo || await getAuthorInfo(r.authorDid, rpc),
49
-
rkey: r.rkey,
50
-
title: r.title,
51
-
time: r.time,
52
-
description: r.description || undefined,
53
-
ingredients: r.ingredientsCount as number,
54
-
steps: r.stepsCount as number,
55
-
});
56
-
57
-
for (const result of recipes) {
58
-
results.push(await eachRecipe(result));
59
-
}
60
-
61
-
let result: BlueRecipesFeedGetRecipes.Output = {
62
-
author: authorInfo || undefined,
63
-
recipes: results,
64
-
};
65
-
66
-
return ctx.json(result);
67
-
});
68
-
69
-
xrpcApp.get('/blue.recipes.feed.getRecipe', async ctx => {
70
-
const { did, rkey } = ctx.req.query();
71
-
if (!did) throw new Error('Invalid DID');
72
-
if (!rkey) throw new Error('Invalid rkey');
73
-
74
-
let parsedDid = await getDidFromHandleOrDid(did);
75
-
if (!parsedDid) {
76
-
ctx.status(404);
77
-
return ctx.json({
78
-
error: 'invalid_did',
79
-
message: 'No such author was found by that identifier.',
80
-
});
81
-
}
82
-
83
-
const recipe = await db.query.recipeTable.findFirst({
84
-
where: and(
85
-
eq(recipeTable.authorDid, parsedDid),
86
-
eq(recipeTable.rkey, rkey),
87
-
),
88
-
});
89
-
90
-
if (!recipe) {
91
-
ctx.status(404);
92
-
return ctx.json({
93
-
error: 'not_found',
94
-
message: 'No such recipe was found in the index.',
95
-
});
96
-
}
97
-
98
-
const rpc = new XRPC({
99
-
handler: simpleFetchHandler({
100
-
service: 'https://public.api.bsky.app',
101
-
}),
102
-
});
103
-
104
-
const authorInfo = await getAuthorInfo(recipe.authorDid, rpc);
105
-
106
-
return ctx.json({
107
-
recipe: {
108
-
author: authorInfo,
109
-
title: recipe.title,
110
-
time: recipe.time,
111
-
description: recipe.description,
112
-
ingredients: recipe.ingredients,
113
-
steps: recipe.steps,
114
-
},
115
-
});
116
-
});
117
-
118
-
xrpcApp.use(async c => {
119
-
c.status(400);
120
-
return c.json({
121
-
error: 'not_implemented',
122
-
message: 'The XRPC server has not yet been implemented.',
123
-
});
124
-
});
+42
apps/ingester/Dockerfile
+42
apps/ingester/Dockerfile
···
1
+
FROM oven/bun:1.3.3 AS base
2
+
WORKDIR /app
3
+
4
+
FROM base AS deps
5
+
COPY package.json bun.lock ./
6
+
COPY apps/api/package.json apps/api/package.json
7
+
COPY apps/ingester/package.json apps/ingester/package.json
8
+
COPY apps/web/package.json apps/web/package.json
9
+
COPY libs/database/package.json libs/database/package.json
10
+
COPY libs/lexicons/package.json libs/lexicons/package.json
11
+
COPY libs/tsconfig/package.json libs/tsconfig/package.json
12
+
13
+
RUN \
14
+
--mount=type=cache,target=/root/.bun/install/cache \
15
+
bun install \
16
+
--frozen-lockfile \
17
+
--filter '@cookware/ingester'
18
+
19
+
FROM base AS build
20
+
COPY --from=deps /app/node_modules ./node_modules/
21
+
COPY . .
22
+
23
+
RUN bun build /app/apps/ingester/src/index.ts \
24
+
--compile \
25
+
--minify \
26
+
--sourcemap \
27
+
--bytecode \
28
+
--outfile=/app/dist/ingester \
29
+
--target=bun \
30
+
--external '@libsql/*'
31
+
32
+
FROM base AS libsql
33
+
WORKDIR /app
34
+
COPY bun.lock ./
35
+
RUN LIBSQL_VERSION=$(grep -oP '"@libsql/client@\K[0-9.]+' bun.lock | head -1) && \
36
+
bun install @libsql/client@${LIBSQL_VERSION} --production
37
+
38
+
FROM rockylinux/rockylinux:9.4-ubi AS run
39
+
ENV NODE_PATH=/app/node_modules
40
+
COPY --from=build /app/dist/ingester /app/ingester
41
+
COPY --from=libsql /app/node_modules /app/node_modules
42
+
ENTRYPOINT ["/app/ingester"]
+13
-26
apps/ingester/package.json
+13
-26
apps/ingester/package.json
···
7
7
"access": "public"
8
8
},
9
9
"scripts": {
10
-
"dev": "NODE_OPTIONS=--use-openssl-ca tsx watch --clear-screen=false src/index.ts | pino-pretty",
11
-
"build": "tsup",
12
-
"start": "NODE_OPTIONS=--use-openssl-ca node dist/index.cjs",
10
+
"build": "bun --bun run check-types && bun --bun run compile",
11
+
"dev": "bun run --hot src/index.ts | pino-pretty",
12
+
"check-types": "tsc --noEmit",
13
+
"compile": "bun build src/index.ts --compile --minify --sourcemap --outfile=dist/api --target=bun",
13
14
"clean": "rimraf dist"
14
15
},
15
16
"dependencies": {
16
-
"@atcute/client": "^2.0.6",
17
+
"@atcute/client": "catalog:",
18
+
"@atcute/identity": "^1.1.3",
19
+
"@atcute/identity-resolver": "^1.1.4",
20
+
"@atcute/jetstream": "^1.1.2",
21
+
"@atcute/lexicons": "catalog:",
22
+
"@badrap/valita": "^0.4.6",
17
23
"@cookware/database": "workspace:^",
24
+
"@cookware/lexicons": "workspace:*",
18
25
"@sentry/node": "^8.42.0",
19
-
"@skyware/jetstream": "^0.2.1",
20
-
"bufferutil": "^4.0.8",
21
-
"drizzle-orm": "^0.37.0",
22
-
"pino": "^9.5.0",
23
-
"ws": "^8.18.0",
24
-
"zod": "^3.23.8"
26
+
"pino": "^9.5.0"
25
27
},
26
28
"devDependencies": {
27
-
"@cookware/lexicons": "workspace:*",
28
29
"@cookware/tsconfig": "workspace:*",
29
-
"@types/node": "^22.10.1",
30
+
"@types/bun": "catalog:",
30
31
"@types/ws": "^8.5.13",
31
32
"pino-pretty": "^13.0.0",
32
33
"rimraf": "^6.0.1",
33
-
"ts-node": "^10.9.2",
34
-
"tsup": "^8.3.5",
35
-
"tsx": "^4.19.2",
36
34
"typescript": "^5.7.2"
37
-
},
38
-
"tsup": {
39
-
"entry": [
40
-
"src",
41
-
"!src/**/__tests__/**",
42
-
"!src/**/*.test.*"
43
-
],
44
-
"splitting": false,
45
-
"sourcemap": true,
46
-
"clean": true,
47
-
"format": "esm"
48
35
}
49
36
}
+13
-18
apps/ingester/src/config.ts
+13
-18
apps/ingester/src/config.ts
···
1
-
import { z } from "zod";
1
+
import * as v from "@badrap/valita";
2
2
3
-
const envSchema = z.object({
4
-
TURSO_CONNECTION_URL: z.string().default('https://turso.dev.hayden.moe'),
5
-
TURSO_AUTH_TOKEN: z.string().or(z.undefined()),
3
+
const envSchema = v.object({
4
+
TURSO_CONNECTION_URL: v.string().optional(() => 'https://turso.dev.hayden.moe'),
5
+
TURSO_AUTH_TOKEN: v.string().optional(),
6
6
7
-
JETSTREAM_ENDPOINT: z
8
-
.string()
9
-
.url()
10
-
.default('wss://jetstream1.us-east.bsky.network/subscribe'),
11
-
PLC_DIRECTORY_URL: z.string().url().default('https://plc.directory'),
7
+
REDIS_URL: v.string().optional(() => 'redis://localhost:6379/0'),
12
8
13
-
SENTRY_DSN: z.string().or(z.undefined()),
9
+
JETSTREAM_ENDPOINT: v.string()
10
+
.optional(() => 'wss://jetstream1.us-east.bsky.network'),
11
+
PLC_DIRECTORY_URL: v.string().optional(() => 'https://plc.directory'),
14
12
15
-
ENV: z
16
-
.union([
17
-
z.literal('development'),
18
-
z.literal('production'),
19
-
])
20
-
.default('development'),
13
+
ENV: v
14
+
.union(v.literal('development'), v.literal('production'))
15
+
.optional(() => 'development'),
21
16
});
22
17
23
-
const env = envSchema.parse(process.env);
18
+
const env = envSchema.parse(process.env, { mode: 'strip' });
24
19
25
20
export default env;
26
-
export type Env = z.infer<typeof envSchema>;
21
+
export type Env = v.Infer<typeof envSchema>;
+52
-75
apps/ingester/src/index.ts
+52
-75
apps/ingester/src/index.ts
···
1
-
import { Jetstream } from "@skyware/jetstream";
2
-
import { WebSocket } from "ws";
3
-
import { ingestLogger } from "./logger.js";
1
+
import { JetstreamSubscription } from "@atcute/jetstream";
4
2
import env from "./config.js";
5
-
import { RecipeCollection, RecipeRecord, parseDid } from "@cookware/lexicons";
6
-
import { db, recipeTable } from "@cookware/database";
7
-
import { and, eq } from "drizzle-orm";
3
+
import { BlueRecipesActorProfile, BlueRecipesFeedRecipe } from "@cookware/lexicons";
4
+
import { isAtprotoDid } from '@atcute/identity';
5
+
import pino from "pino";
6
+
import { ingestRecipe } from "./ingesters/recipe.js";
7
+
import { ingestProfile } from "./ingesters/profile.js";
8
8
9
9
export const newIngester = () => {
10
-
const jetstream = new Jetstream({
11
-
ws: WebSocket,
12
-
endpoint: env.JETSTREAM_ENDPOINT,
13
-
wantedCollections: ['blue.recipes.*'],
14
-
cursor: 0,
10
+
const logger = pino({
11
+
name: 'recipes.ingester',
12
+
level: env.ENV === 'development' ? 'debug' : 'info',
15
13
});
16
14
17
-
jetstream.on("commit", async event => {
18
-
if (event.commit.operation == 'create' || event.commit.operation == 'update') {
19
-
const now = new Date();
20
-
const { record } = event.commit;
21
-
22
-
if (
23
-
event.commit.collection == RecipeCollection
24
-
&& record.$type == RecipeCollection
25
-
&& RecipeRecord.safeParse(record).success
26
-
) {
27
-
const res = await db
28
-
.insert(recipeTable)
29
-
.values({
30
-
rkey: event.commit.rkey,
31
-
title: record.title,
32
-
time: record.time,
33
-
description: record.description,
34
-
ingredients: record.ingredients,
35
-
steps: record.steps,
36
-
authorDid: parseDid(event.did)!,
37
-
createdAt: now,
38
-
})
39
-
.onConflictDoUpdate({
40
-
target: recipeTable.id,
41
-
set: {
42
-
title: record.title,
43
-
time: record.time,
44
-
description: record.description,
45
-
ingredients: record.ingredients,
46
-
steps: record.steps,
47
-
},
48
-
})
49
-
.execute();
50
-
51
-
ingestLogger.info({ res }, 'recipe ingested');
52
-
}
53
-
} else if (event.commit.operation == 'delete') {
54
-
const res = await db
55
-
.delete(recipeTable)
56
-
.where(
57
-
and(
58
-
eq(recipeTable.authorDid, parseDid(event.did)!),
59
-
eq(recipeTable.rkey, event.commit.rkey),
60
-
)
61
-
)
62
-
.execute();
63
-
64
-
ingestLogger.info({ res }, 'recipe deleted');
65
-
}
15
+
const subscription = new JetstreamSubscription({
16
+
url: env.JETSTREAM_ENDPOINT,
17
+
wantedCollections: [
18
+
'blue.recipes.feed.recipe',
19
+
'blue.recipes.actor.profile',
20
+
],
21
+
onConnectionOpen: () => logger.info('Connected to Jetstream'),
22
+
onConnectionError: err => {
23
+
logger.error(err, 'Failed to connect to Jetstream');
24
+
process.exit(1);
25
+
},
26
+
onConnectionClose: () => logger.info('Disconnected from Jetstream'),
66
27
});
67
28
68
-
jetstream.on('open', () => {
69
-
ingestLogger.info({
70
-
endpoint: env.JETSTREAM_ENDPOINT,
71
-
wantedCollections: ['recipes.blue.*'],
72
-
}, 'Ingester connection opened.');
73
-
});
29
+
return {
30
+
subscription,
31
+
start: async () => {
32
+
const redis = new Bun.RedisClient(env.REDIS_URL);
74
33
75
-
jetstream.on('close', () => {
76
-
ingestLogger.error('Ingester connection closed.');
77
-
});
34
+
for await (const event of subscription) {
35
+
const authorDid = event.did;
36
+
if (!isAtprotoDid(authorDid)) {
37
+
logger.warn(`Invalid did: ${authorDid}`);
38
+
continue;
39
+
}
78
40
79
-
jetstream.on('error', err => {
80
-
ingestLogger.error({ err }, 'Ingester runtime error.');
81
-
});
82
-
83
-
return jetstream;
41
+
if (event.kind === 'commit') {
42
+
const commit = event.commit;
43
+
switch (commit.collection) {
44
+
case BlueRecipesFeedRecipe.mainSchema.object.shape.$type.expected:
45
+
await ingestRecipe(authorDid, commit, logger);
46
+
break;
47
+
case BlueRecipesActorProfile.mainSchema.object.shape.$type.expected:
48
+
await ingestProfile(authorDid, commit, logger, redis);
49
+
break;
50
+
default:
51
+
logger.debug({ collection: commit.collection }, "skipping unknown collection");
52
+
break;
53
+
}
54
+
} else {
55
+
logger.trace({ kind: event.kind, authorDid }, `Skipping non-commit event for did: ${event.did}`);
56
+
continue;
57
+
}
58
+
}
59
+
},
60
+
}
84
61
};
85
62
86
-
newIngester().start();
63
+
await newIngester().start();
+84
apps/ingester/src/ingesters/profile.ts
+84
apps/ingester/src/ingesters/profile.ts
···
1
+
import { db, eq } from "@cookware/database";
2
+
import { profilesTable } from "@cookware/database/schema";
3
+
import { is } from '@atcute/lexicons';
4
+
import { BlueRecipesActorProfile } from "@cookware/lexicons";
5
+
import { CommitOperation } from "@atcute/jetstream";
6
+
import { Logger } from "pino";
7
+
import { AtprotoDid } from "@atcute/lexicons/syntax";
8
+
import { RedisClient } from "bun";
9
+
import { CompositeDidDocumentResolver, PlcDidDocumentResolver, WebDidDocumentResolver } from "@atcute/identity-resolver";
10
+
import env from "../config.js";
11
+
12
+
const didResolver = new CompositeDidDocumentResolver({
13
+
methods: {
14
+
plc: new PlcDidDocumentResolver({ apiUrl: env.PLC_DIRECTORY_URL }),
15
+
web: new WebDidDocumentResolver(),
16
+
}
17
+
});
18
+
19
+
const HANDLE_CACHE_TTL = 5 * 60; // 5 minutes
20
+
21
+
export const ingestProfile = async (did: AtprotoDid, commit: CommitOperation, logger: Logger, redis: RedisClient) => {
22
+
if (commit.operation == 'create' || commit.operation == 'update') {
23
+
const { rkey, record, cid } = commit;
24
+
25
+
if (rkey != "self") {
26
+
logger.warn(`Invalid profile rkey for ${commit['operation']} ${did}: ${rkey}`);
27
+
return;
28
+
}
29
+
if (!is(BlueRecipesActorProfile.mainSchema, record)) {
30
+
logger.warn(`Invalid profile schema for ${commit['operation']} ${did}`);
31
+
return;
32
+
}
33
+
34
+
// Preemptively cache the user's handle for the API
35
+
let handle = await redis.get(`handle:${did}`);
36
+
if (!handle) {
37
+
const didDoc = await didResolver.resolve(did);
38
+
if (didDoc.alsoKnownAs == null || didDoc.alsoKnownAs.length < 1) {
39
+
logger.warn(`User ${did} had no resolvable DID document.`);
40
+
return;
41
+
}
42
+
handle = didDoc.alsoKnownAs[0]!.substring(5);
43
+
redis.setex(`handle:${did}`, HANDLE_CACHE_TTL, handle);
44
+
}
45
+
46
+
await db
47
+
.insert(profilesTable)
48
+
.values({
49
+
cid,
50
+
did,
51
+
displayName: record.displayName,
52
+
avatarRef: record.avatar,
53
+
bannerRef: record.banner,
54
+
description: record.description,
55
+
pronouns: record.pronouns,
56
+
website: record.website,
57
+
createdAt: record.createdAt ? new Date(record.createdAt) : new Date(),
58
+
ingestedAt: new Date(),
59
+
})
60
+
.onConflictDoUpdate({
61
+
target: [profilesTable.did],
62
+
set: {
63
+
cid,
64
+
displayName: record.displayName,
65
+
avatarRef: record.avatar,
66
+
bannerRef: record.banner,
67
+
description: record.description,
68
+
pronouns: record.pronouns,
69
+
website: record.website,
70
+
createdAt: record.createdAt ? new Date(record.createdAt) : new Date(),
71
+
},
72
+
});
73
+
74
+
logger.info(`Upserted profile ${did}/${rkey}`);
75
+
} else if (commit.operation == 'delete') {
76
+
const rkey = commit.rkey;
77
+
db
78
+
.delete(profilesTable)
79
+
.where(eq(profilesTable.did, did));
80
+
logger.info(`Deleted profile ${did}/${rkey}`);
81
+
} else {
82
+
logger.warn(`Unknown operation type: ${commit['operation']}`);
83
+
}
84
+
};
+57
apps/ingester/src/ingesters/recipe.ts
+57
apps/ingester/src/ingesters/recipe.ts
···
1
+
import { db, and, eq } from "@cookware/database";
2
+
import { recipeTable } from "@cookware/database/schema";
3
+
import { is } from '@atcute/lexicons';
4
+
import { BlueRecipesFeedRecipe } from "@cookware/lexicons";
5
+
import { CommitOperation } from "@atcute/jetstream";
6
+
import { Logger } from "pino";
7
+
import { AtprotoDid } from "@atcute/lexicons/syntax";
8
+
9
+
export const ingestRecipe = async (did: AtprotoDid, commit: CommitOperation, logger: Logger) => {
10
+
if (commit.operation == 'create' || commit.operation == 'update') {
11
+
const { rkey, record, cid } = commit;
12
+
13
+
if (!is(BlueRecipesFeedRecipe.mainSchema, record)) {
14
+
logger.warn(`Invalid recipe schema for ${commit['operation']} ${did}/${rkey}`);
15
+
return;
16
+
}
17
+
18
+
await db
19
+
.insert(recipeTable)
20
+
.values({
21
+
cid, rkey, did,
22
+
title: record.title,
23
+
time: record.time ?? 0,
24
+
serves: record.serves ?? null,
25
+
description: record.description ?? null,
26
+
ingredients: record.ingredients,
27
+
steps: record.steps,
28
+
createdAt: record.createdAt ? new Date(record.createdAt) : new Date(),
29
+
})
30
+
.onConflictDoUpdate({
31
+
target: [recipeTable.did, recipeTable.rkey],
32
+
set: {
33
+
cid,
34
+
title: record.title,
35
+
time: record.time ?? 0,
36
+
serves: record.serves ?? null,
37
+
description: record.description ?? null,
38
+
ingredients: record.ingredients,
39
+
steps: record.steps,
40
+
createdAt: record.createdAt ? new Date(record.createdAt) : new Date(),
41
+
},
42
+
});
43
+
44
+
logger.info(`Upserted recipe ${did}/${rkey}`);
45
+
} else if (commit.operation == 'delete') {
46
+
const rkey = commit.rkey;
47
+
db
48
+
.delete(recipeTable)
49
+
.where(and(
50
+
eq(recipeTable.did, did),
51
+
eq(recipeTable.rkey, rkey),
52
+
));
53
+
logger.info(`Deleted recipe ${did}/${rkey}`);
54
+
} else {
55
+
logger.warn(`Unknown operation type: ${commit['operation']}`);
56
+
}
57
+
};
-4
apps/ingester/src/logger.ts
-4
apps/ingester/src/logger.ts
+11
-6
apps/web/package.json
+11
-6
apps/web/package.json
···
10
10
"preview": "vite preview"
11
11
},
12
12
"dependencies": {
13
-
"@atcute/client": "^2.0.6",
14
-
"@atcute/oauth-browser-client": "^1.0.7",
13
+
"@atcute/atproto": "^3.1.9",
14
+
"@atcute/client": "catalog:",
15
+
"@atcute/identity-resolver": "^1.1.4",
16
+
"@atcute/lexicons": "catalog:",
17
+
"@atcute/oauth-browser-client": "^2.0.1",
15
18
"@atproto/common": "^0.4.5",
16
19
"@atproto/common-web": "^0.3.1",
17
20
"@dnd-kit/core": "^6.3.1",
···
24
27
"@radix-ui/react-dialog": "^1.1.4",
25
28
"@radix-ui/react-dropdown-menu": "^2.1.4",
26
29
"@radix-ui/react-icons": "^1.3.2",
27
-
"@radix-ui/react-label": "^2.1.0",
28
-
"@radix-ui/react-separator": "^1.1.0",
29
-
"@radix-ui/react-slot": "^1.1.0",
30
+
"@radix-ui/react-label": "^2.1.8",
31
+
"@radix-ui/react-separator": "^1.1.8",
32
+
"@radix-ui/react-slot": "^1.2.4",
30
33
"@radix-ui/react-tooltip": "^1.1.4",
31
34
"@tanstack/react-query": "^5.62.2",
32
35
"@tanstack/react-query-devtools": "^5.62.2",
···
51
54
"@types/node": "^22.10.1",
52
55
"@types/react": "^19.0.0",
53
56
"@types/react-dom": "^19.0.0",
57
+
"@vitejs/plugin-react": "^5.1.1",
54
58
"@vitejs/plugin-react-swc": "^3.5.0",
55
59
"autoprefixer": "^10.4.20",
60
+
"babel-plugin-react-compiler": "^1.0.0",
56
61
"cssnano": "^7.0.6",
57
62
"eslint": "^9.15.0",
58
63
"eslint-plugin-react-hooks": "^5.0.0",
···
63
68
"tailwindcss": "^3.4.16",
64
69
"typescript": "~5.6.2",
65
70
"typescript-eslint": "^8.15.0",
66
-
"vite": "^6.0.1"
71
+
"vite": "^7.2.4"
67
72
}
68
73
}
-12
apps/web/public/client-metadata.json
-12
apps/web/public/client-metadata.json
···
1
-
{
2
-
"client_id": "https://recipes.blue/client-metadata.json",
3
-
"client_name": "Recipes",
4
-
"client_uri": "https://recipes.blue",
5
-
"redirect_uris": ["https://recipes.blue/"],
6
-
"scope": "atproto transition:generic",
7
-
"grant_types": ["authorization_code", "refresh_token"],
8
-
"response_types": ["code"],
9
-
"token_endpoint_auth_method": "none",
10
-
"application_type": "web",
11
-
"dpop_bound_access_tokens": true
12
-
}
+9
apps/web/public/oauth-client-metadata.json
+9
apps/web/public/oauth-client-metadata.json
···
1
+
{
2
+
"client_id": "https://recipes.blue/oauth-client-metadata.json",
3
+
"client_name": "Recipes.blue",
4
+
"redirect_uris": ["https://recipes.blue/"],
5
+
"scope": "atproto transition:generic",
6
+
"token_endpoint_auth_method": "none",
7
+
"application_type": "web",
8
+
"dpop_bound_access_tokens": true
9
+
}
+37
apps/web/src/components/mode-toggle.tsx
+37
apps/web/src/components/mode-toggle.tsx
···
1
+
import { Moon, Sun } from "lucide-react"
2
+
3
+
import { Button } from "@/components/ui/button"
4
+
import {
5
+
DropdownMenu,
6
+
DropdownMenuContent,
7
+
DropdownMenuItem,
8
+
DropdownMenuTrigger,
9
+
} from "@/components/ui/dropdown-menu"
10
+
import { useTheme } from "@/components/theme-provider"
11
+
12
+
export function ModeToggle() {
13
+
const { setTheme } = useTheme()
14
+
15
+
return (
16
+
<DropdownMenu>
17
+
<DropdownMenuTrigger asChild>
18
+
<Button variant="outline" size="icon" className="size-8 aspect-square flex items-center justify-center rounded-lg">
19
+
<Sun className="h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
20
+
<Moon className="absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
21
+
<span className="sr-only">Toggle theme</span>
22
+
</Button>
23
+
</DropdownMenuTrigger>
24
+
<DropdownMenuContent align="end">
25
+
<DropdownMenuItem onClick={() => setTheme("light")}>
26
+
Light
27
+
</DropdownMenuItem>
28
+
<DropdownMenuItem onClick={() => setTheme("dark")}>
29
+
Dark
30
+
</DropdownMenuItem>
31
+
<DropdownMenuItem onClick={() => setTheme("system")}>
32
+
System
33
+
</DropdownMenuItem>
34
+
</DropdownMenuContent>
35
+
</DropdownMenu>
36
+
)
37
+
}
+10
-6
apps/web/src/components/query-placeholder.tsx
+10
-6
apps/web/src/components/query-placeholder.tsx
···
1
1
import type { UseQueryResult } from '@tanstack/react-query';
2
-
import { PropsWithChildren, ReactNode } from 'react';
2
+
import { ReactNode } from 'react';
3
3
import { Skeleton } from './ui/skeleton';
4
4
import { Alert, AlertDescription, AlertTitle } from './ui/alert';
5
5
import { AlertCircle } from 'lucide-react';
6
-
import { XRPCError } from '@atcute/client';
6
+
import { isXRPCErrorPayload } from '@atcute/client';
7
7
8
-
type QueryPlaceholderProps<TData, TError> = PropsWithChildren<{
8
+
type QueryPlaceholderProps<TData, TError> = {
9
9
query: UseQueryResult<TData, TError>;
10
10
cards?: boolean;
11
11
cardsCount?: number;
12
12
noData?: ReactNode;
13
-
}>;
13
+
children: ReactNode | ReactNode[] | ((data: TData) => ReactNode | ReactNode[]);
14
+
};
14
15
15
16
const QueryPlaceholder = <TData = {}, TError = Error>(
16
17
{
···
32
33
} else if (query.isError) {
33
34
const { error } = query;
34
35
let errMsg = 'Unknown';
35
-
if (error instanceof XRPCError) {
36
-
errMsg = error.kind ?? `HTTP_${error.status}`;
36
+
if (isXRPCErrorPayload(error)) {
37
+
errMsg = error.message ?? `XRPC_${error.error}`;
37
38
} if (error instanceof Error) {
38
39
errMsg = `${error.message} (${error.name})`;
39
40
}
···
50
51
</Alert>
51
52
)
52
53
} else if (query.data) {
54
+
if (typeof children === 'function') {
55
+
return children(query.data);
56
+
}
53
57
return children;
54
58
}
55
59
return noData;
+23
-16
apps/web/src/components/recipe-card.tsx
+23
-16
apps/web/src/components/recipe-card.tsx
···
1
-
import { BlueRecipesFeedGetRecipes } from "@atcute/client/lexicons";
2
1
import { Card, CardContent, CardFooter, CardHeader } from "./ui/card";
3
2
import { Avatar, AvatarFallback, AvatarImage } from "./ui/avatar";
4
3
import { Link } from "@tanstack/react-router";
5
-
import { Clock, ListOrdered, Utensils } from "lucide-react";
4
+
import { Clock, ListOrdered, Users, Utensils } from "lucide-react";
5
+
import { BlueRecipesFeedGetRecipes } from "@cookware/lexicons";
6
6
7
7
type RecipeCardProps = {
8
-
recipe: BlueRecipesFeedGetRecipes.Result;
8
+
recipe: BlueRecipesFeedGetRecipes.$output['recipes'][0];
9
9
};
10
10
11
11
function truncateDescription(description: string, maxLength: number = 120) {
···
18
18
<Link to="/recipes/$author/$rkey" params={{ author: recipe.author.handle, rkey: recipe.rkey }} className="w-full">
19
19
<Card className="overflow-hidden">
20
20
<CardHeader className="p-0">
21
-
<div className="relative h-48 w-full">
22
-
<img
23
-
src={"https://www.foodandwine.com/thmb/fjNakOY7IcuvZac1hR3JcSo7vzI=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/FAW-recipes-pasta-sausage-basil-and-mustard-hero-06-cfd1c0a2989e474ea7e574a38182bbee.jpg"}
24
-
alt={recipe.title}
25
-
className="h-full w-full object-cover"
26
-
/>
27
-
</div>
21
+
{ recipe.record.image &&
22
+
<div className="relative h-48 w-full">
23
+
<img
24
+
src={recipe.imageUrl}
25
+
alt={recipe.record.title}
26
+
className="h-full w-full object-cover"
27
+
/>
28
+
</div>
29
+
}
28
30
</CardHeader>
29
31
<CardContent className="p-4">
30
-
<h3 className="text-lg font-semibold mb-2">{recipe.title}</h3>
32
+
<h3 className="text-lg font-semibold mb-2">{recipe.record.title}</h3>
31
33
<p className="text-sm text-muted-foreground mb-4">
32
-
{truncateDescription(recipe.description || '')}
34
+
{truncateDescription(recipe.record.description || '')}
33
35
</p>
34
36
</CardContent>
35
37
<CardFooter className="p-4 pt-0">
36
38
<div className="w-full flex items-center justify-between">
37
39
<div className="flex items-center">
38
40
<Avatar className="h-8 w-8 mr-2">
39
-
<AvatarImage src={recipe.author.avatarUrl} alt={recipe.author.displayName} />
41
+
<AvatarImage src={recipe.author.avatar} alt={recipe.author.displayName} />
40
42
<AvatarFallback className="rounded-lg">{recipe.author.displayName?.charAt(0)}</AvatarFallback>
41
43
</Avatar>
42
44
<span className="text-sm text-muted-foreground">{recipe.author.displayName}</span>
···
44
46
<div className="flex gap-6 justify-between items-center text-sm text-muted-foreground">
45
47
<div className="flex items-center">
46
48
<Utensils className="w-4 h-4 mr-1" />
47
-
<span>{recipe.ingredients}</span>
49
+
<span>{recipe.record.ingredients.length}</span>
48
50
</div>
49
51
50
52
<div className="flex items-center">
51
53
<ListOrdered className="w-4 h-4 mr-1" />
52
-
<span>{recipe.steps}</span>
54
+
<span>{recipe.record.steps.length}</span>
55
+
</div>
56
+
57
+
<div className="flex items-center">
58
+
<Users className="w-4 h-4 mr-1" />
59
+
<span>{recipe.record.serves}</span>
53
60
</div>
54
61
55
62
<div className="flex items-center">
56
63
<Clock className="w-4 h-4 mr-1" />
57
-
<span>{recipe.time} min</span>
64
+
<span>{recipe.record.time} min</span>
58
65
</div>
59
66
</div>
60
67
</div>
+73
apps/web/src/components/theme-provider.tsx
+73
apps/web/src/components/theme-provider.tsx
···
1
+
import { createContext, useContext, useEffect, useState } from "react"
2
+
3
+
type Theme = "dark" | "light" | "system"
4
+
5
+
type ThemeProviderProps = {
6
+
children: React.ReactNode
7
+
defaultTheme?: Theme
8
+
storageKey?: string
9
+
}
10
+
11
+
type ThemeProviderState = {
12
+
theme: Theme
13
+
setTheme: (theme: Theme) => void
14
+
}
15
+
16
+
const initialState: ThemeProviderState = {
17
+
theme: "system",
18
+
setTheme: () => null,
19
+
}
20
+
21
+
const ThemeProviderContext = createContext<ThemeProviderState>(initialState)
22
+
23
+
export function ThemeProvider({
24
+
children,
25
+
defaultTheme = "system",
26
+
storageKey = "vite-ui-theme",
27
+
...props
28
+
}: ThemeProviderProps) {
29
+
const [theme, setTheme] = useState<Theme>(
30
+
() => (localStorage.getItem(storageKey) as Theme) || defaultTheme
31
+
)
32
+
33
+
useEffect(() => {
34
+
const root = window.document.documentElement
35
+
36
+
root.classList.remove("light", "dark")
37
+
38
+
if (theme === "system") {
39
+
const systemTheme = window.matchMedia("(prefers-color-scheme: dark)")
40
+
.matches
41
+
? "dark"
42
+
: "light"
43
+
44
+
root.classList.add(systemTheme)
45
+
return
46
+
}
47
+
48
+
root.classList.add(theme)
49
+
}, [theme])
50
+
51
+
const value = {
52
+
theme,
53
+
setTheme: (theme: Theme) => {
54
+
localStorage.setItem(storageKey, theme)
55
+
setTheme(theme)
56
+
},
57
+
}
58
+
59
+
return (
60
+
<ThemeProviderContext.Provider {...props} value={value}>
61
+
{children}
62
+
</ThemeProviderContext.Provider>
63
+
)
64
+
}
65
+
66
+
export const useTheme = () => {
67
+
const context = useContext(ThemeProviderContext)
68
+
69
+
if (context === undefined)
70
+
throw new Error("useTheme must be used within a ThemeProvider")
71
+
72
+
return context
73
+
}
+242
apps/web/src/components/ui/field.tsx
+242
apps/web/src/components/ui/field.tsx
···
1
+
import { useMemo } from "react"
2
+
import { cva, type VariantProps } from "class-variance-authority"
3
+
4
+
import { cn } from "@/lib/utils"
5
+
import { Label } from "@/components/ui/label"
6
+
import { Separator } from "@/components/ui/separator"
7
+
8
+
function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
9
+
return (
10
+
<fieldset
11
+
data-slot="field-set"
12
+
className={cn(
13
+
"flex flex-col gap-6",
14
+
"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
15
+
className
16
+
)}
17
+
{...props}
18
+
/>
19
+
)
20
+
}
21
+
22
+
function FieldLegend({
23
+
className,
24
+
variant = "legend",
25
+
...props
26
+
}: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }) {
27
+
return (
28
+
<legend
29
+
data-slot="field-legend"
30
+
data-variant={variant}
31
+
className={cn(
32
+
"mb-3 font-medium",
33
+
"data-[variant=legend]:text-base",
34
+
"data-[variant=label]:text-sm",
35
+
className
36
+
)}
37
+
{...props}
38
+
/>
39
+
)
40
+
}
41
+
42
+
function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
43
+
return (
44
+
<div
45
+
data-slot="field-group"
46
+
className={cn(
47
+
"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",
48
+
className
49
+
)}
50
+
{...props}
51
+
/>
52
+
)
53
+
}
54
+
55
+
const fieldVariants = cva(
56
+
"group/field data-[invalid=true]:text-destructive flex w-full gap-3",
57
+
{
58
+
variants: {
59
+
orientation: {
60
+
vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
61
+
horizontal: [
62
+
"flex-row items-center",
63
+
"[&>[data-slot=field-label]]:flex-auto",
64
+
"has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start",
65
+
],
66
+
responsive: [
67
+
"@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto",
68
+
"@md/field-group:[&>[data-slot=field-label]]:flex-auto",
69
+
"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
70
+
],
71
+
},
72
+
},
73
+
defaultVariants: {
74
+
orientation: "vertical",
75
+
},
76
+
}
77
+
)
78
+
79
+
function Field({
80
+
className,
81
+
orientation = "vertical",
82
+
...props
83
+
}: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>) {
84
+
return (
85
+
<div
86
+
role="group"
87
+
data-slot="field"
88
+
data-orientation={orientation}
89
+
className={cn(fieldVariants({ orientation }), className)}
90
+
{...props}
91
+
/>
92
+
)
93
+
}
94
+
95
+
function FieldContent({ className, ...props }: React.ComponentProps<"div">) {
96
+
return (
97
+
<div
98
+
data-slot="field-content"
99
+
className={cn(
100
+
"group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
101
+
className
102
+
)}
103
+
{...props}
104
+
/>
105
+
)
106
+
}
107
+
108
+
function FieldLabel({
109
+
className,
110
+
...props
111
+
}: React.ComponentProps<typeof Label>) {
112
+
return (
113
+
<Label
114
+
data-slot="field-label"
115
+
className={cn(
116
+
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
117
+
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4",
118
+
"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",
119
+
className
120
+
)}
121
+
{...props}
122
+
/>
123
+
)
124
+
}
125
+
126
+
function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
127
+
return (
128
+
<div
129
+
data-slot="field-label"
130
+
className={cn(
131
+
"flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50",
132
+
className
133
+
)}
134
+
{...props}
135
+
/>
136
+
)
137
+
}
138
+
139
+
function FieldDescription({ className, ...props }: React.ComponentProps<"p">) {
140
+
return (
141
+
<p
142
+
data-slot="field-description"
143
+
className={cn(
144
+
"text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
145
+
"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5",
146
+
"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
147
+
className
148
+
)}
149
+
{...props}
150
+
/>
151
+
)
152
+
}
153
+
154
+
function FieldSeparator({
155
+
children,
156
+
className,
157
+
...props
158
+
}: React.ComponentProps<"div"> & {
159
+
children?: React.ReactNode
160
+
}) {
161
+
return (
162
+
<div
163
+
data-slot="field-separator"
164
+
data-content={!!children}
165
+
className={cn(
166
+
"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
167
+
className
168
+
)}
169
+
{...props}
170
+
>
171
+
<Separator className="absolute inset-0 top-1/2" />
172
+
{children && (
173
+
<span
174
+
className="bg-background text-muted-foreground relative mx-auto block w-fit px-2"
175
+
data-slot="field-separator-content"
176
+
>
177
+
{children}
178
+
</span>
179
+
)}
180
+
</div>
181
+
)
182
+
}
183
+
184
+
function FieldError({
185
+
className,
186
+
children,
187
+
errors,
188
+
...props
189
+
}: React.ComponentProps<"div"> & {
190
+
errors?: Array<{ message?: string } | undefined>
191
+
}) {
192
+
const content = useMemo(() => {
193
+
if (children) {
194
+
return children
195
+
}
196
+
197
+
if (!errors) {
198
+
return null
199
+
}
200
+
201
+
if (errors?.length === 1 && errors[0]?.message) {
202
+
return errors[0].message
203
+
}
204
+
205
+
return (
206
+
<ul className="ml-4 flex list-disc flex-col gap-1">
207
+
{errors.map(
208
+
(error, index) =>
209
+
error?.message && <li key={index}>{error.message}</li>
210
+
)}
211
+
</ul>
212
+
)
213
+
}, [children, errors])
214
+
215
+
if (!content) {
216
+
return null
217
+
}
218
+
219
+
return (
220
+
<div
221
+
role="alert"
222
+
data-slot="field-error"
223
+
className={cn("text-destructive text-sm font-normal", className)}
224
+
{...props}
225
+
>
226
+
{content}
227
+
</div>
228
+
)
229
+
}
230
+
231
+
export {
232
+
Field,
233
+
FieldLabel,
234
+
FieldDescription,
235
+
FieldError,
236
+
FieldGroup,
237
+
FieldLegend,
238
+
FieldSeparator,
239
+
FieldSet,
240
+
FieldContent,
241
+
FieldTitle,
242
+
}
+2
apps/web/src/components/ui/separator.tsx
+2
apps/web/src/components/ui/separator.tsx
+4
-17
apps/web/src/hooks/use-xrpc.tsx
+4
-17
apps/web/src/hooks/use-xrpc.tsx
···
1
-
import { SERVER_URL } from "@/lib/utils";
2
-
import { useAuth } from "@/state/auth";
3
-
import { CredentialManager, XRPC } from "@atcute/client"
1
+
import { useClient } from "@/state/auth";
4
2
3
+
/** @deprecated Use `useClient` from `state/auth/client` instead. */
5
4
export function useXrpc() {
6
-
const { agent } = useAuth();
7
-
8
-
if (agent) {
9
-
return new XRPC({
10
-
handler: agent,
11
-
proxy: {
12
-
type: 'api',
13
-
service: `did:web:${SERVER_URL}`,
14
-
},
15
-
});
16
-
}
17
-
18
-
const creds = new CredentialManager({ service: `http://${SERVER_URL}` });
19
-
return new XRPC({ handler: creds });
5
+
const client = useClient();
6
+
return client;
20
7
}
+14
-14
apps/web/src/index.css
+14
-14
apps/web/src/index.css
···
45
45
--card-foreground: 0 0% 98%;
46
46
--popover: 0 0% 3.9%;
47
47
--popover-foreground: 0 0% 98%;
48
-
--primary: 0 72.2% 50.6%;
49
-
--primary-foreground: 0 85.7% 97.3%;
50
-
--secondary: 0 0% 14.9%;
51
-
--secondary-foreground: 0 0% 98%;
52
-
--muted: 0 0% 14.9%;
53
-
--muted-foreground: 0 0% 63.9%;
54
-
--accent: 0 0% 14.9%;
55
-
--accent-foreground: 0 0% 98%;
48
+
--primary: 217.2 91.2% 59.8%;
49
+
--primary-foreground: 222.2 47.4% 11.2%;
50
+
--secondary: 217.2 32.6% 17.5%;
51
+
--secondary-foreground: 210 40% 98%;
52
+
--muted: 217.2 32.6% 17.5%;
53
+
--muted-foreground: 215 20.2% 65.1%;
54
+
--accent: 217.2 32.6% 17.5%;
55
+
--accent-foreground: 210 40% 98%;
56
56
--destructive: 0 62.8% 30.6%;
57
-
--destructive-foreground: 0 0% 98%;
58
-
--border: 0 0% 14.9%;
59
-
--input: 0 0% 14.9%;
60
-
--ring: 0 72.2% 50.6%;
57
+
--destructive-foreground: 210 40% 98%;
58
+
--border: 217.2 32.6% 17.5%;
59
+
--input: 217.2 32.6% 17.5%;
60
+
--ring: 224.3 76.3% 48%;
61
61
--chart-1: 220 70% 50%;
62
62
--chart-2: 160 60% 45%;
63
63
--chart-3: 30 80% 55%;
···
65
65
--chart-5: 340 75% 55%;
66
66
--sidebar-background: 240 5.9% 10%;
67
67
--sidebar-foreground: 240 4.8% 95.9%;
68
-
--sidebar-primary: 224.3 76.3% 48%;
68
+
--sidebar-primary: 217.2 91.2% 59.8%;
69
69
--sidebar-primary-foreground: 0 0% 100%;
70
-
--sidebar-accent: 240 3.7% 15.9%;
70
+
--sidebar-accent: 217.2 32.6% 17.5%;
71
71
--sidebar-accent-foreground: 240 4.8% 95.9%;
72
72
--sidebar-border: 240 3.7% 15.9%;
73
73
--sidebar-ring: 217.2 91.2% 59.8%;
+30
-12
apps/web/src/main.tsx
+30
-12
apps/web/src/main.tsx
···
4
4
import { createRouter, RouterProvider } from '@tanstack/react-router';
5
5
import { QueryClientProvider, QueryClient } from '@tanstack/react-query'
6
6
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
7
-
import { configureOAuth } from '@atcute/oauth-browser-client';
7
+
import { configureOAuth, defaultIdentityResolver } from '@atcute/oauth-browser-client';
8
8
import './index.css'
9
-
import { AuthProvider, useAuth } from './state/auth';
9
+
import { ThemeProvider } from './components/theme-provider';
10
+
import { CompositeDidDocumentResolver, PlcDidDocumentResolver, WebDidDocumentResolver, XrpcHandleResolver } from '@atcute/identity-resolver';
11
+
import { SessionProvider, useSession } from './state/auth/session';
12
+
import { ClientProvider, useClient } from './state/auth';
10
13
11
14
const router = createRouter({
12
15
routeTree,
13
16
context: {
14
-
auth: undefined!,
17
+
session: undefined!,
18
+
client: undefined!,
15
19
},
16
20
});
17
21
···
24
28
configureOAuth({
25
29
metadata: {
26
30
client_id: import.meta.env.VITE_OAUTH_CLIENT_ID,
27
-
redirect_uri: import.meta.env.VITE_OAUTH_REDIRECT_URL,
31
+
redirect_uri: import.meta.env.VITE_OAUTH_REDIRECT_URI,
28
32
},
33
+
identityResolver: defaultIdentityResolver({
34
+
handleResolver: new XrpcHandleResolver({ serviceUrl: 'https://slingshot.microcosm.blue' }),
35
+
didDocumentResolver: new CompositeDidDocumentResolver({
36
+
methods: {
37
+
plc: new PlcDidDocumentResolver(),
38
+
web: new WebDidDocumentResolver(),
39
+
},
40
+
}),
41
+
}),
29
42
});
30
43
31
44
const queryClient = new QueryClient({
···
39
52
});
40
53
41
54
const InnerApp = () => {
42
-
const auth = useAuth();
43
-
return <RouterProvider router={router} context={{ auth }} />
55
+
const session = useSession();
56
+
const client = useClient();
57
+
return <RouterProvider router={router} context={{ session, client }} />
44
58
};
45
59
46
60
createRoot(document.getElementById('root')!).render(
47
61
<StrictMode>
48
-
<AuthProvider>
49
-
<QueryClientProvider client={queryClient}>
50
-
<InnerApp />
51
-
<ReactQueryDevtools initialIsOpen={false} />
52
-
</QueryClientProvider>
53
-
</AuthProvider>
62
+
<SessionProvider>
63
+
<ClientProvider>
64
+
<ThemeProvider defaultTheme="dark" storageKey="recipes-theme">
65
+
<QueryClientProvider client={queryClient}>
66
+
<InnerApp />
67
+
<ReactQueryDevtools initialIsOpen={false} />
68
+
</QueryClientProvider>
69
+
</ThemeProvider>
70
+
</ClientProvider>
71
+
</SessionProvider>
54
72
</StrictMode>,
55
73
)
+58
-30
apps/web/src/queries/recipe.ts
+58
-30
apps/web/src/queries/recipe.ts
···
1
-
import { useXrpc } from "@/hooks/use-xrpc";
2
-
import { useAuth } from "@/state/auth";
3
-
import { XRPC, XRPCError } from "@atcute/client";
4
-
import { Recipe, RecipeCollection } from "@cookware/lexicons";
5
1
import { queryOptions, useMutation, useQuery } from "@tanstack/react-query";
2
+
import { Client } from "@atcute/client";
6
3
import { notFound } from "@tanstack/react-router";
7
4
import { UseFormReturn } from "react-hook-form";
8
5
import { TID } from '@atproto/common-web';
6
+
import { z } from "zod";
7
+
import { ActorIdentifier, Did } from "@atcute/lexicons";
8
+
9
+
import type {} from '@atcute/atproto';
10
+
import type {} from '@cookware/lexicons';
11
+
import { useClient } from "../state/auth/client";
9
12
10
13
const RQKEY_ROOT = 'posts';
11
14
export const RQKEY = (cursor: string, did: string, rkey: string) => [RQKEY_ROOT, cursor, did, rkey];
12
15
13
-
export const useRecipesQuery = (cursor: string, did?: string) => {
14
-
const rpc = useXrpc();
16
+
export const useRecipesQuery = (cursor: string, did?: Did) => {
17
+
const client = useClient();
15
18
return useQuery({
16
19
queryKey: RQKEY(cursor, did ?? '', ''),
17
20
queryFn: async () => {
18
-
const res = await rpc.get('blue.recipes.feed.getRecipes', {
21
+
const res = await client.get('blue.recipes.feed.getRecipes', {
19
22
params: { cursor, did },
20
23
});
24
+
if (!res.ok) throw res.data;
21
25
return res.data;
22
26
},
23
27
});
24
28
};
25
29
26
-
export const recipeQueryOptions = (rpc: XRPC, did: string, rkey: string) => {
30
+
export const recipeQueryOptions = (rpc: Client, actor: ActorIdentifier, rkey: string) => {
27
31
return queryOptions({
28
-
queryKey: RQKEY('', did, rkey),
32
+
queryKey: RQKEY('', actor, rkey),
29
33
queryFn: async () => {
30
-
try {
31
-
const res = await rpc.get('blue.recipes.feed.getRecipe', {
32
-
params: { did, rkey },
34
+
const { ok, data } = await rpc.get('blue.recipes.feed.getRecipe', {
35
+
params: { uris: [`at://${actor}/blue.recipes.feed.recipe/${rkey}`] },
33
36
});
34
-
return res.data;
35
-
} catch (err) {
36
-
if (err instanceof XRPCError && err.kind && err.kind == 'not_found') {
37
-
throw notFound({ routeId: '/_' });
37
+
38
+
if (!ok) {
39
+
switch (data.error) {
40
+
case 'RecipeNotFound':
41
+
throw notFound({ routeId: '/_' });
42
+
default:
43
+
throw new Error(`Error fetching recipe: ${data.error}`);
38
44
}
39
-
throw err;
40
45
}
46
+
47
+
return data;
41
48
},
42
49
});
43
50
};
44
51
45
-
export const useRecipeQuery = (did: string, rkey: string) => {
46
-
const rpc = useXrpc();
52
+
export const useRecipeQuery = (did: Did, rkey: string) => {
53
+
const rpc = useClient();
47
54
return useQuery(recipeQueryOptions(rpc, did, rkey));
48
55
};
49
56
50
-
export const useNewRecipeMutation = (form: UseFormReturn<Recipe>) => {
51
-
const { agent } = useAuth();
52
-
const rpc = useXrpc();
57
+
export const useNewRecipeMutation = (form: UseFormReturn<z.infer<typeof recipeSchema>>) => {
58
+
const rpc = useClient();
53
59
return useMutation({
54
60
mutationKey: ['recipes.new'],
55
-
mutationFn: async ({ recipe }: { recipe: Recipe }) => {
61
+
mutationFn: async ({ recipe: { image, ...recipe } }: { recipe: z.infer<typeof recipeSchema> }) => {
62
+
let recipeImg = null;
63
+
if (image) {
64
+
const imageFile = image.item(0) as File;
65
+
const { ok, data } = await rpc.post('com.atproto.repo.uploadBlob', {
66
+
input: imageFile,
67
+
});
68
+
69
+
if (!ok) {
70
+
throw new Error(`Image upload failed: ${data.error}`);
71
+
}
72
+
73
+
recipeImg = data.blob;
74
+
}
75
+
56
76
const rkey = TID.nextStr();
57
-
const res = await rpc.call(`com.atproto.repo.createRecord`, {
58
-
data: {
59
-
repo: agent?.session.info.sub as `did:${string}`,
60
-
record: recipe,
61
-
collection: RecipeCollection,
77
+
const { ok, data } = await rpc.post(`com.atproto.repo.createRecord`, {
78
+
input: {
79
+
repo: agent?.session.info.sub as ActorIdentifier,
80
+
record: {
81
+
...recipe,
82
+
image: recipeImg,
83
+
},
84
+
collection: 'blue.recipes.feed.recipe',
62
85
rkey: rkey,
63
-
},
86
+
}
64
87
});
88
+
89
+
if (!ok) {
90
+
throw new Error(`Recipe creation failed: ${data.error}`);
91
+
}
92
+
65
93
return {
66
94
rkey: rkey,
67
-
resp: res.data
95
+
resp: data,
68
96
};
69
97
},
70
98
onError: (error) => {
+7
-11
apps/web/src/queries/self.ts
+7
-11
apps/web/src/queries/self.ts
···
1
-
import { useXrpc } from "@/hooks/use-xrpc";
2
-
import { useAuth } from "@/state/auth";
3
-
import { AppBskyActorProfile } from "@atcute/client/lexicons";
4
-
import { At } from "@atcute/client/lexicons";
1
+
import { useClient, useSession } from "@/state/auth";
2
+
import { BlueRecipesActorDefs } from "@cookware/lexicons";
5
3
import { useQuery } from "@tanstack/react-query";
6
4
7
5
export const useUserQuery = () => {
8
-
const { isLoggedIn, agent } = useAuth();
9
-
const rpc = useXrpc();
6
+
const { isLoggedIn, agent } = useSession();
7
+
const rpc = useClient();
10
8
11
9
return useQuery({
12
10
queryKey: ['self'],
13
11
queryFn: async () => {
14
-
const res = await rpc.get('com.atproto.repo.getRecord', {
12
+
const res = await rpc.get('blue.recipes.actor.getProfile', {
15
13
params: {
16
-
repo: agent?.sub as At.DID,
17
-
collection: 'app.bsky.actor.profile',
18
-
rkey: 'self',
14
+
actor: agent?.sub!
19
15
},
20
16
});
21
17
22
-
return res.data.value as AppBskyActorProfile.Record;
18
+
return res.data as BlueRecipesActorDefs.ProfileViewDetailed;
23
19
},
24
20
enabled: isLoggedIn,
25
21
});
+92
-156
apps/web/src/routeTree.gen.ts
+92
-156
apps/web/src/routeTree.gen.ts
···
10
10
11
11
import { createFileRoute } from '@tanstack/react-router'
12
12
13
-
// Import Routes
14
-
15
-
import { Route as rootRoute } from './routes/__root'
16
-
import { Route as Import } from './routes/_'
17
-
import { Route as authLoginImport } from './routes/_.(auth)/login'
18
-
import { Route as appRecipesNewImport } from './routes/_.(app)/recipes/new'
19
-
20
-
// Create Virtual Routes
13
+
import { Route as rootRouteImport } from './routes/__root'
14
+
import { Route as RouteImport } from './routes/_'
15
+
import { Route as authLoginRouteImport } from './routes/_.(auth)/login'
16
+
import { Route as appRecipesNewRouteImport } from './routes/_.(app)/recipes/new'
21
17
22
-
const appIndexLazyImport = createFileRoute('/_/(app)/')()
23
-
const appRecipesAuthorIndexLazyImport = createFileRoute(
18
+
const appIndexLazyRouteImport = createFileRoute('/_/(app)/')()
19
+
const appRecipesAuthorIndexLazyRouteImport = createFileRoute(
24
20
'/_/(app)/recipes/$author/',
25
21
)()
26
-
const appRecipesAuthorRkeyIndexLazyImport = createFileRoute(
22
+
const appRecipesAuthorRkeyIndexLazyRouteImport = createFileRoute(
27
23
'/_/(app)/recipes/$author/$rkey/',
28
24
)()
29
25
30
-
// Create/Update Routes
31
-
32
-
const Route = Import.update({
26
+
const Route = RouteImport.update({
33
27
id: '/_',
34
-
getParentRoute: () => rootRoute,
28
+
getParentRoute: () => rootRouteImport,
35
29
} as any)
36
-
37
-
const appIndexLazyRoute = appIndexLazyImport
30
+
const appIndexLazyRoute = appIndexLazyRouteImport
38
31
.update({
39
32
id: '/(app)/',
40
33
path: '/',
41
34
getParentRoute: () => Route,
42
35
} as any)
43
36
.lazy(() => import('./routes/_.(app)/index.lazy').then((d) => d.Route))
44
-
45
-
const authLoginRoute = authLoginImport.update({
37
+
const authLoginRoute = authLoginRouteImport.update({
46
38
id: '/(auth)/login',
47
39
path: '/login',
48
40
getParentRoute: () => Route,
49
41
} as any)
50
-
51
-
const appRecipesNewRoute = appRecipesNewImport.update({
42
+
const appRecipesNewRoute = appRecipesNewRouteImport.update({
52
43
id: '/(app)/recipes/new',
53
44
path: '/recipes/new',
54
45
getParentRoute: () => Route,
55
46
} as any)
56
-
57
-
const appRecipesAuthorIndexLazyRoute = appRecipesAuthorIndexLazyImport
47
+
const appRecipesAuthorIndexLazyRoute = appRecipesAuthorIndexLazyRouteImport
58
48
.update({
59
49
id: '/(app)/recipes/$author/',
60
50
path: '/recipes/$author/',
···
63
53
.lazy(() =>
64
54
import('./routes/_.(app)/recipes/$author/index.lazy').then((d) => d.Route),
65
55
)
66
-
67
-
const appRecipesAuthorRkeyIndexLazyRoute = appRecipesAuthorRkeyIndexLazyImport
68
-
.update({
69
-
id: '/(app)/recipes/$author/$rkey/',
70
-
path: '/recipes/$author/$rkey/',
71
-
getParentRoute: () => Route,
72
-
} as any)
73
-
.lazy(() =>
74
-
import('./routes/_.(app)/recipes/$author/$rkey/index.lazy').then(
75
-
(d) => d.Route,
76
-
),
77
-
)
78
-
79
-
// Populate the FileRoutesByPath interface
80
-
81
-
declare module '@tanstack/react-router' {
82
-
interface FileRoutesByPath {
83
-
'/_': {
84
-
id: '/_'
85
-
path: ''
86
-
fullPath: ''
87
-
preLoaderRoute: typeof Import
88
-
parentRoute: typeof rootRoute
89
-
}
90
-
'/_/(auth)/login': {
91
-
id: '/_/(auth)/login'
92
-
path: '/login'
93
-
fullPath: '/login'
94
-
preLoaderRoute: typeof authLoginImport
95
-
parentRoute: typeof rootRoute
96
-
}
97
-
'/_/(app)/': {
98
-
id: '/_/(app)/'
99
-
path: '/'
100
-
fullPath: '/'
101
-
preLoaderRoute: typeof appIndexLazyImport
102
-
parentRoute: typeof rootRoute
103
-
}
104
-
'/_/(app)/recipes/new': {
105
-
id: '/_/(app)/recipes/new'
106
-
path: '/recipes/new'
107
-
fullPath: '/recipes/new'
108
-
preLoaderRoute: typeof appRecipesNewImport
109
-
parentRoute: typeof rootRoute
110
-
}
111
-
'/_/(app)/recipes/$author/': {
112
-
id: '/_/(app)/recipes/$author/'
113
-
path: '/recipes/$author'
114
-
fullPath: '/recipes/$author'
115
-
preLoaderRoute: typeof appRecipesAuthorIndexLazyImport
116
-
parentRoute: typeof rootRoute
117
-
}
118
-
'/_/(app)/recipes/$author/$rkey/': {
119
-
id: '/_/(app)/recipes/$author/$rkey/'
120
-
path: '/recipes/$author/$rkey'
121
-
fullPath: '/recipes/$author/$rkey'
122
-
preLoaderRoute: typeof appRecipesAuthorRkeyIndexLazyImport
123
-
parentRoute: typeof rootRoute
124
-
}
125
-
}
126
-
}
127
-
128
-
// Create and export the route tree
129
-
130
-
interface RouteChildren {
131
-
authLoginRoute: typeof authLoginRoute
132
-
appIndexLazyRoute: typeof appIndexLazyRoute
133
-
appRecipesNewRoute: typeof appRecipesNewRoute
134
-
appRecipesAuthorIndexLazyRoute: typeof appRecipesAuthorIndexLazyRoute
135
-
appRecipesAuthorRkeyIndexLazyRoute: typeof appRecipesAuthorRkeyIndexLazyRoute
136
-
}
137
-
138
-
const RouteChildren: RouteChildren = {
139
-
authLoginRoute: authLoginRoute,
140
-
appIndexLazyRoute: appIndexLazyRoute,
141
-
appRecipesNewRoute: appRecipesNewRoute,
142
-
appRecipesAuthorIndexLazyRoute: appRecipesAuthorIndexLazyRoute,
143
-
appRecipesAuthorRkeyIndexLazyRoute: appRecipesAuthorRkeyIndexLazyRoute,
144
-
}
145
-
146
-
const RouteWithChildren = Route._addFileChildren(RouteChildren)
56
+
const appRecipesAuthorRkeyIndexLazyRoute =
57
+
appRecipesAuthorRkeyIndexLazyRouteImport
58
+
.update({
59
+
id: '/(app)/recipes/$author/$rkey/',
60
+
path: '/recipes/$author/$rkey/',
61
+
getParentRoute: () => Route,
62
+
} as any)
63
+
.lazy(() =>
64
+
import('./routes/_.(app)/recipes/$author/$rkey/index.lazy').then(
65
+
(d) => d.Route,
66
+
),
67
+
)
147
68
148
69
export interface FileRoutesByFullPath {
149
-
'': typeof RouteWithChildren
150
70
'/login': typeof authLoginRoute
151
71
'/': typeof appIndexLazyRoute
152
72
'/recipes/new': typeof appRecipesNewRoute
153
73
'/recipes/$author': typeof appRecipesAuthorIndexLazyRoute
154
74
'/recipes/$author/$rkey': typeof appRecipesAuthorRkeyIndexLazyRoute
155
75
}
156
-
157
76
export interface FileRoutesByTo {
158
77
'/login': typeof authLoginRoute
159
78
'/': typeof appIndexLazyRoute
···
161
80
'/recipes/$author': typeof appRecipesAuthorIndexLazyRoute
162
81
'/recipes/$author/$rkey': typeof appRecipesAuthorRkeyIndexLazyRoute
163
82
}
164
-
165
83
export interface FileRoutesById {
166
-
__root__: typeof rootRoute
84
+
__root__: typeof rootRouteImport
167
85
'/_': typeof RouteWithChildren
168
86
'/_/(auth)/login': typeof authLoginRoute
169
87
'/_/(app)/': typeof appIndexLazyRoute
···
171
89
'/_/(app)/recipes/$author/': typeof appRecipesAuthorIndexLazyRoute
172
90
'/_/(app)/recipes/$author/$rkey/': typeof appRecipesAuthorRkeyIndexLazyRoute
173
91
}
174
-
175
92
export interface FileRouteTypes {
176
93
fileRoutesByFullPath: FileRoutesByFullPath
177
94
fullPaths:
178
-
| ''
179
95
| '/login'
180
96
| '/'
181
97
| '/recipes/new'
···
198
114
| '/_/(app)/recipes/$author/$rkey/'
199
115
fileRoutesById: FileRoutesById
200
116
}
201
-
202
117
export interface RootRouteChildren {
203
118
Route: typeof RouteWithChildren
204
119
}
205
120
121
+
declare module '@tanstack/react-router' {
122
+
interface FileRoutesByPath {
123
+
'/_': {
124
+
id: '/_'
125
+
path: ''
126
+
fullPath: ''
127
+
preLoaderRoute: typeof RouteImport
128
+
parentRoute: typeof rootRouteImport
129
+
}
130
+
'/_/(app)/': {
131
+
id: '/_/(app)/'
132
+
path: '/'
133
+
fullPath: '/'
134
+
preLoaderRoute: typeof appIndexLazyRouteImport
135
+
parentRoute: typeof Route
136
+
}
137
+
'/_/(auth)/login': {
138
+
id: '/_/(auth)/login'
139
+
path: '/login'
140
+
fullPath: '/login'
141
+
preLoaderRoute: typeof authLoginRouteImport
142
+
parentRoute: typeof Route
143
+
}
144
+
'/_/(app)/recipes/new': {
145
+
id: '/_/(app)/recipes/new'
146
+
path: '/recipes/new'
147
+
fullPath: '/recipes/new'
148
+
preLoaderRoute: typeof appRecipesNewRouteImport
149
+
parentRoute: typeof Route
150
+
}
151
+
'/_/(app)/recipes/$author/': {
152
+
id: '/_/(app)/recipes/$author/'
153
+
path: '/recipes/$author'
154
+
fullPath: '/recipes/$author'
155
+
preLoaderRoute: typeof appRecipesAuthorIndexLazyRouteImport
156
+
parentRoute: typeof Route
157
+
}
158
+
'/_/(app)/recipes/$author/$rkey/': {
159
+
id: '/_/(app)/recipes/$author/$rkey/'
160
+
path: '/recipes/$author/$rkey'
161
+
fullPath: '/recipes/$author/$rkey'
162
+
preLoaderRoute: typeof appRecipesAuthorRkeyIndexLazyRouteImport
163
+
parentRoute: typeof Route
164
+
}
165
+
}
166
+
}
167
+
168
+
interface RouteChildren {
169
+
authLoginRoute: typeof authLoginRoute
170
+
appIndexLazyRoute: typeof appIndexLazyRoute
171
+
appRecipesNewRoute: typeof appRecipesNewRoute
172
+
appRecipesAuthorIndexLazyRoute: typeof appRecipesAuthorIndexLazyRoute
173
+
appRecipesAuthorRkeyIndexLazyRoute: typeof appRecipesAuthorRkeyIndexLazyRoute
174
+
}
175
+
176
+
const RouteChildren: RouteChildren = {
177
+
authLoginRoute: authLoginRoute,
178
+
appIndexLazyRoute: appIndexLazyRoute,
179
+
appRecipesNewRoute: appRecipesNewRoute,
180
+
appRecipesAuthorIndexLazyRoute: appRecipesAuthorIndexLazyRoute,
181
+
appRecipesAuthorRkeyIndexLazyRoute: appRecipesAuthorRkeyIndexLazyRoute,
182
+
}
183
+
184
+
const RouteWithChildren = Route._addFileChildren(RouteChildren)
185
+
206
186
const rootRouteChildren: RootRouteChildren = {
207
187
Route: RouteWithChildren,
208
188
}
209
-
210
-
export const routeTree = rootRoute
189
+
export const routeTree = rootRouteImport
211
190
._addFileChildren(rootRouteChildren)
212
191
._addFileTypes<FileRouteTypes>()
213
-
214
-
/* ROUTE_MANIFEST_START
215
-
{
216
-
"routes": {
217
-
"__root__": {
218
-
"filePath": "__root.tsx",
219
-
"children": [
220
-
"/_"
221
-
]
222
-
},
223
-
"/_": {
224
-
"filePath": "_.tsx",
225
-
"children": [
226
-
"/_/(auth)/login",
227
-
"/_/(app)/",
228
-
"/_/(app)/recipes/new",
229
-
"/_/(app)/recipes/$author/",
230
-
"/_/(app)/recipes/$author/$rkey/"
231
-
]
232
-
},
233
-
"/_/(auth)/login": {
234
-
"filePath": "_.(auth)/login.tsx",
235
-
"parent": "/_"
236
-
},
237
-
"/_/(app)/": {
238
-
"filePath": "_.(app)/index.lazy.tsx",
239
-
"parent": "/_"
240
-
},
241
-
"/_/(app)/recipes/new": {
242
-
"filePath": "_.(app)/recipes/new.tsx",
243
-
"parent": "/_"
244
-
},
245
-
"/_/(app)/recipes/$author/": {
246
-
"filePath": "_.(app)/recipes/$author/index.lazy.tsx",
247
-
"parent": "/_"
248
-
},
249
-
"/_/(app)/recipes/$author/$rkey/": {
250
-
"filePath": "_.(app)/recipes/$author/$rkey/index.lazy.tsx",
251
-
"parent": "/_"
252
-
}
253
-
}
254
-
}
255
-
ROUTE_MANIFEST_END */
+3
-3
apps/web/src/routes/_.(app)/index.lazy.tsx
+3
-3
apps/web/src/routes/_.(app)/index.lazy.tsx
···
30
30
<BreadcrumbList>
31
31
<BreadcrumbItem className="hidden md:block">
32
32
<BreadcrumbLink asChild>
33
-
<Link href="/">Community</Link>
33
+
<Link to="/">Community</Link>
34
34
</BreadcrumbLink>
35
35
</BreadcrumbItem>
36
36
<BreadcrumbSeparator className="hidden md:block" />
···
48
48
<div className="flex-1 flex flex-col items-center p-4">
49
49
<div className="flex flex-col gap-4 max-w-2xl w-full items-center">
50
50
<QueryPlaceholder query={query} cards cardsCount={12}>
51
-
{query.data?.recipes.map((recipe, idx) => (
51
+
{data => data.recipes.map(recipe => (
52
52
<RecipeCard
53
53
recipe={recipe}
54
-
key={idx}
54
+
key={`${recipe.author.did}-${recipe.rkey}`}
55
55
/>
56
56
))}
57
57
</QueryPlaceholder>
+289
-304
apps/web/src/routes/_.(app)/recipes/new.tsx
+289
-304
apps/web/src/routes/_.(app)/recipes/new.tsx
···
9
9
} from "@/components/ui/breadcrumb";
10
10
import { Separator } from "@/components/ui/separator";
11
11
import { SidebarTrigger } from "@/components/ui/sidebar";
12
-
import { useFieldArray, useForm } from "react-hook-form";
13
-
import { z } from "zod";
14
-
import { zodResolver } from "@hookform/resolvers/zod";
15
-
import { RecipeRecord } from "@cookware/lexicons";
16
-
import {
17
-
Form,
18
-
FormControl,
19
-
FormDescription,
20
-
FormField,
21
-
FormItem,
22
-
FormLabel,
23
-
FormMessage,
24
-
} from "@/components/ui/form";
25
-
import { Button } from "@/components/ui/button";
26
-
import { Input } from "@/components/ui/input";
27
-
import { Textarea } from "@/components/ui/textarea";
28
-
import {
29
-
Card,
30
-
CardContent,
31
-
CardDescription,
32
-
CardHeader,
33
-
CardTitle,
34
-
} from "@/components/ui/card";
35
-
import {
36
-
Sortable,
37
-
SortableDragHandle,
38
-
SortableItem,
39
-
} from "@/components/ui/sortable";
40
-
import { DragHandleDots2Icon } from "@radix-ui/react-icons";
41
-
import { Label } from "@/components/ui/label";
42
-
import { TrashIcon } from "lucide-react";
43
-
import { useNewRecipeMutation } from "@/queries/recipe";
44
-
import { useState } from "react";
45
12
46
13
export const Route = createFileRoute("/_/(app)/recipes/new")({
47
14
beforeLoad: async ({ context }) => {
48
-
if (!context.auth.isLoggedIn) {
15
+
if (!context.session.isLoggedIn) {
49
16
throw redirect({
50
17
to: '/login',
51
18
});
···
54
21
component: RouteComponent,
55
22
});
56
23
57
-
const schema = RecipeRecord.extend({
58
-
time: z.coerce.number(),
59
-
});
60
-
61
24
function RouteComponent() {
62
-
const form = useForm<z.infer<typeof schema>>({
63
-
resolver: zodResolver(schema),
64
-
defaultValues: {
65
-
title: "",
66
-
time: 0,
67
-
description: "",
68
-
ingredients: [{ name: "" }],
69
-
steps: [{ text: "" }],
70
-
},
71
-
});
72
-
73
-
const { mutate, isPending } = useNewRecipeMutation(form);
74
-
75
-
const onSubmit = (values: z.infer<typeof schema>) => {
76
-
mutate({ recipe: values });
77
-
};
78
-
79
-
const ingredients = useFieldArray({
80
-
control: form.control,
81
-
name: "ingredients",
82
-
});
83
-
84
-
const steps = useFieldArray({
85
-
control: form.control,
86
-
name: "steps",
87
-
});
88
-
89
-
return (
90
-
<>
91
-
<Breadcrumbs />
92
-
<div className="flex-1 flex-col p-4 pt-0 max-w-xl w-full mx-auto">
93
-
<Card>
94
-
<CardHeader>
95
-
<CardTitle>New recipe</CardTitle>
96
-
<CardDescription>Share your recipe with the world!</CardDescription>
97
-
</CardHeader>
98
-
<CardContent>
99
-
<Form {...form}>
100
-
<form
101
-
onSubmit={form.handleSubmit(onSubmit)}
102
-
className="space-y-8"
103
-
>
104
-
<FormField
105
-
name="title"
106
-
control={form.control}
107
-
render={({ field }) => (
108
-
<FormItem>
109
-
<FormLabel>Title</FormLabel>
110
-
<FormControl>
111
-
<Input placeholder="My awesome recipe!" {...field} />
112
-
</FormControl>
113
-
<FormDescription>
114
-
This is your recipe's name.
115
-
</FormDescription>
116
-
<FormMessage />
117
-
</FormItem>
118
-
)}
119
-
/>
120
-
121
-
<FormField
122
-
name="description"
123
-
control={form.control}
124
-
render={({ field: { value, ...field } }) => (
125
-
<FormItem>
126
-
<FormLabel>Description</FormLabel>
127
-
<FormControl>
128
-
<Textarea
129
-
className="resize-none"
130
-
value={value || ""}
131
-
{...field}
132
-
/>
133
-
</FormControl>
134
-
<FormDescription>Describe your recipe, maybe tell the world how tasty it is? (Optional)</FormDescription>
135
-
<FormMessage />
136
-
</FormItem>
137
-
)}
138
-
/>
139
-
140
-
<FormField
141
-
name="time"
142
-
control={form.control}
143
-
render={({ field: { value, ...field } }) => (
144
-
<FormItem>
145
-
<FormLabel>Time</FormLabel>
146
-
<FormControl>
147
-
<Input
148
-
type="number"
149
-
className="resize-none"
150
-
value={value || ""}
151
-
{...field}
152
-
/>
153
-
</FormControl>
154
-
<FormDescription>How long (in minutes) does your recipe take to complete?</FormDescription>
155
-
<FormMessage />
156
-
</FormItem>
157
-
)}
158
-
/>
159
-
160
-
<div className="grid gap-2">
161
-
<Label>Ingredients</Label>
162
-
<Sortable
163
-
value={ingredients.fields}
164
-
onMove={({ activeIndex, overIndex }) =>
165
-
ingredients.move(activeIndex, overIndex)}
166
-
>
167
-
<div className="flex w-full flex-col gap-2">
168
-
{ingredients.fields.map((field, index) => (
169
-
<SortableItem key={field.id} value={field.id} asChild>
170
-
<div className="grid grid-cols-[2rem_0.3fr_1fr_2rem] items-center gap-2">
171
-
<SortableDragHandle
172
-
type="button"
173
-
variant="outline"
174
-
size="icon"
175
-
className="size-8 shrink-0"
176
-
>
177
-
<DragHandleDots2Icon
178
-
className="size-4"
179
-
aria-hidden="true"
180
-
/>
181
-
</SortableDragHandle>
182
-
183
-
<FormField
184
-
control={form.control}
185
-
name={`ingredients.${index}.amount`}
186
-
render={({ field: { value, ...field } }) => (
187
-
<FormItem>
188
-
<FormControl>
189
-
<Input
190
-
placeholder="Amount"
191
-
value={value || ""}
192
-
className="h-8"
193
-
{...field}
194
-
/>
195
-
</FormControl>
196
-
<FormMessage />
197
-
</FormItem>
198
-
)}
199
-
/>
200
-
201
-
<FormField
202
-
control={form.control}
203
-
name={`ingredients.${index}.name`}
204
-
render={({ field }) => (
205
-
<FormItem>
206
-
<FormControl>
207
-
<Input
208
-
placeholder="Ingredient"
209
-
className="h-8"
210
-
{...field}
211
-
/>
212
-
</FormControl>
213
-
<FormMessage />
214
-
</FormItem>
215
-
)}
216
-
/>
217
-
218
-
<Button
219
-
type="button"
220
-
variant="destructive"
221
-
className="size-8"
222
-
onClick={(e) => {
223
-
e.preventDefault();
224
-
ingredients.remove(index);
225
-
}}
226
-
>
227
-
<TrashIcon />
228
-
</Button>
229
-
</div>
230
-
</SortableItem>
231
-
))}
232
-
</div>
233
-
</Sortable>
234
-
<Button
235
-
type="button"
236
-
variant="secondary"
237
-
onClick={(e) => {
238
-
e.preventDefault();
239
-
ingredients.append({
240
-
name: "",
241
-
amount: "",
242
-
});
243
-
}}
244
-
>
245
-
Add
246
-
</Button>
247
-
</div>
248
-
249
-
<div className="grid gap-2">
250
-
<Label>Steps</Label>
251
-
<Sortable
252
-
value={steps.fields}
253
-
onMove={({ activeIndex, overIndex }) =>
254
-
steps.move(activeIndex, overIndex)}
255
-
>
256
-
<div className="flex w-full flex-col gap-2">
257
-
{steps.fields.map((field, index) => (
258
-
<SortableItem key={field.id} value={field.id} asChild>
259
-
<div className="grid grid-cols-[2rem_auto_2rem] items-center gap-2">
260
-
<SortableDragHandle
261
-
type="button"
262
-
variant="outline"
263
-
size="icon"
264
-
className="size-8 shrink-0"
265
-
>
266
-
<DragHandleDots2Icon
267
-
className="size-4"
268
-
aria-hidden="true"
269
-
/>
270
-
</SortableDragHandle>
271
-
<FormField
272
-
control={form.control}
273
-
name={`steps.${index}.text`}
274
-
render={({ field }) => (
275
-
<FormItem>
276
-
<FormControl>
277
-
<Input className="h-8" {...field} />
278
-
</FormControl>
279
-
<FormMessage />
280
-
</FormItem>
281
-
)}
282
-
/>
283
-
284
-
<Button
285
-
type="button"
286
-
variant="destructive"
287
-
className="size-8"
288
-
onClick={(e) => {
289
-
e.preventDefault();
290
-
steps.remove(index);
291
-
}}
292
-
>
293
-
<TrashIcon />
294
-
</Button>
295
-
</div>
296
-
</SortableItem>
297
-
))}
298
-
</div>
299
-
</Sortable>
300
-
<Button
301
-
type="button"
302
-
variant="secondary"
303
-
onClick={(e) => {
304
-
e.preventDefault();
305
-
steps.append({ text: "" });
306
-
}}
307
-
>
308
-
Add
309
-
</Button>
310
-
</div>
311
-
312
-
<div className="grid justify-end">
313
-
<Button
314
-
type="submit"
315
-
className="ml-auto"
316
-
disabled={isPending}
317
-
>
318
-
Submit
319
-
</Button>
320
-
</div>
321
-
</form>
322
-
</Form>
323
-
</CardContent>
324
-
</Card>
325
-
</div>
326
-
</>
327
-
);
25
+
return (<></>);
26
+
// const form = useForm<z.infer<typeof recipeSchema>>({
27
+
// resolver: zodResolver(recipeSchema),
28
+
// defaultValues: {
29
+
// title: "",
30
+
// time: 0,
31
+
// image: null,
32
+
// description: "",
33
+
// ingredients: [{ name: "" }],
34
+
// steps: [{ text: "" }],
35
+
// },
36
+
// });
37
+
//
38
+
// const { mutate, isPending } = useNewRecipeMutation(form);
39
+
//
40
+
// const onSubmit = (values: z.infer<typeof recipeSchema>) => {
41
+
// mutate({ recipe: values });
42
+
// };
43
+
//
44
+
// const imageRef = form.register("image");
45
+
//
46
+
// const ingredients = useFieldArray({
47
+
// control: form.control,
48
+
// name: "ingredients",
49
+
// });
50
+
//
51
+
// const steps = useFieldArray({
52
+
// control: form.control,
53
+
// name: "steps",
54
+
// });
55
+
//
56
+
// return (
57
+
// <>
58
+
// <Breadcrumbs />
59
+
// <div className="flex-1 flex-col p-4 pt-0 max-w-xl w-full mx-auto">
60
+
// <Card>
61
+
// <CardHeader>
62
+
// <CardTitle>New recipe</CardTitle>
63
+
// <CardDescription>Share your recipe with the world!</CardDescription>
64
+
// </CardHeader>
65
+
// <CardContent>
66
+
// <Form {...form}>
67
+
// <form
68
+
// onSubmit={form.handleSubmit(onSubmit)}
69
+
// className="space-y-8"
70
+
// >
71
+
// <FormField
72
+
// name="title"
73
+
// control={form.control}
74
+
// render={({ field }) => (
75
+
// <FormItem>
76
+
// <FormLabel>Title</FormLabel>
77
+
// <FormControl>
78
+
// <Input placeholder="My awesome recipe!" {...field} />
79
+
// </FormControl>
80
+
// <FormDescription>
81
+
// This is your recipe's name.
82
+
// </FormDescription>
83
+
// <FormMessage />
84
+
// </FormItem>
85
+
// )}
86
+
// />
87
+
//
88
+
// <FormField
89
+
// name="description"
90
+
// control={form.control}
91
+
// render={({ field: { value, ...field } }) => (
92
+
// <FormItem>
93
+
// <FormLabel>Description</FormLabel>
94
+
// <FormControl>
95
+
// <Textarea
96
+
// className="resize-none"
97
+
// value={value || ""}
98
+
// {...field}
99
+
// />
100
+
// </FormControl>
101
+
// <FormDescription>Describe your recipe, maybe tell the world how tasty it is? (Optional)</FormDescription>
102
+
// <FormMessage />
103
+
// </FormItem>
104
+
// )}
105
+
// />
106
+
//
107
+
// <FormField
108
+
// name="image"
109
+
// control={form.control}
110
+
// render={(_props) => (
111
+
// <FormItem>
112
+
// <FormLabel>Image</FormLabel>
113
+
// <FormControl>
114
+
// <Input
115
+
// type="file"
116
+
// className="resize-none"
117
+
// {...imageRef}
118
+
// />
119
+
// </FormControl>
120
+
// <FormMessage />
121
+
// </FormItem>
122
+
// )}
123
+
// />
124
+
//
125
+
// <FormField
126
+
// name="time"
127
+
// control={form.control}
128
+
// render={({ field: { value, ...field } }) => (
129
+
// <FormItem>
130
+
// <FormLabel>Time</FormLabel>
131
+
// <FormControl>
132
+
// <Input
133
+
// type="number"
134
+
// className="resize-none"
135
+
// value={value || ""}
136
+
// {...field}
137
+
// />
138
+
// </FormControl>
139
+
// <FormDescription>How long (in minutes) does your recipe take to complete?</FormDescription>
140
+
// <FormMessage />
141
+
// </FormItem>
142
+
// )}
143
+
// />
144
+
//
145
+
// <div className="grid gap-2">
146
+
// <Label>Ingredients</Label>
147
+
// <Sortable
148
+
// value={ingredients.fields}
149
+
// onMove={({ activeIndex, overIndex }) =>
150
+
// ingredients.move(activeIndex, overIndex)}
151
+
// >
152
+
// <div className="flex w-full flex-col gap-2">
153
+
// {ingredients.fields.map((field, index) => (
154
+
// <SortableItem key={field.id} value={field.id} asChild>
155
+
// <div className="grid grid-cols-[2rem_0.3fr_1fr_2rem] items-center gap-2">
156
+
// <SortableDragHandle
157
+
// type="button"
158
+
// variant="outline"
159
+
// size="icon"
160
+
// className="size-8 shrink-0"
161
+
// >
162
+
// <DragHandleDots2Icon
163
+
// className="size-4"
164
+
// aria-hidden="true"
165
+
// />
166
+
// </SortableDragHandle>
167
+
//
168
+
// <FormField
169
+
// control={form.control}
170
+
// name={`ingredients.${index}.amount`}
171
+
// render={({ field: { value, ...field } }) => (
172
+
// <FormItem>
173
+
// <FormControl>
174
+
// <Input
175
+
// placeholder="Amount"
176
+
// value={value || ""}
177
+
// className="h-8"
178
+
// {...field}
179
+
// />
180
+
// </FormControl>
181
+
// <FormMessage />
182
+
// </FormItem>
183
+
// )}
184
+
// />
185
+
//
186
+
// <FormField
187
+
// control={form.control}
188
+
// name={`ingredients.${index}.name`}
189
+
// render={({ field }) => (
190
+
// <FormItem>
191
+
// <FormControl>
192
+
// <Input
193
+
// placeholder="Ingredient"
194
+
// className="h-8"
195
+
// {...field}
196
+
// />
197
+
// </FormControl>
198
+
// <FormMessage />
199
+
// </FormItem>
200
+
// )}
201
+
// />
202
+
//
203
+
// <Button
204
+
// type="button"
205
+
// variant="destructive"
206
+
// className="size-8"
207
+
// onClick={(e) => {
208
+
// e.preventDefault();
209
+
// ingredients.remove(index);
210
+
// }}
211
+
// >
212
+
// <TrashIcon />
213
+
// </Button>
214
+
// </div>
215
+
// </SortableItem>
216
+
// ))}
217
+
// </div>
218
+
// </Sortable>
219
+
// <Button
220
+
// type="button"
221
+
// variant="secondary"
222
+
// onClick={(e) => {
223
+
// e.preventDefault();
224
+
// ingredients.append({
225
+
// name: "",
226
+
// amount: "",
227
+
// });
228
+
// }}
229
+
// >
230
+
// Add
231
+
// </Button>
232
+
// </div>
233
+
//
234
+
// <div className="grid gap-2">
235
+
// <Label>Steps</Label>
236
+
// <Sortable
237
+
// value={steps.fields}
238
+
// onMove={({ activeIndex, overIndex }) =>
239
+
// steps.move(activeIndex, overIndex)}
240
+
// >
241
+
// <div className="flex w-full flex-col gap-2">
242
+
// {steps.fields.map((field, index) => (
243
+
// <SortableItem key={field.id} value={field.id} asChild>
244
+
// <div className="grid grid-cols-[2rem_auto_2rem] items-center gap-2">
245
+
// <SortableDragHandle
246
+
// type="button"
247
+
// variant="outline"
248
+
// size="icon"
249
+
// className="size-8 shrink-0"
250
+
// >
251
+
// <DragHandleDots2Icon
252
+
// className="size-4"
253
+
// aria-hidden="true"
254
+
// />
255
+
// </SortableDragHandle>
256
+
// <FormField
257
+
// control={form.control}
258
+
// name={`steps.${index}.text`}
259
+
// render={({ field }) => (
260
+
// <FormItem>
261
+
// <FormControl>
262
+
// <Input className="h-8" {...field} />
263
+
// </FormControl>
264
+
// <FormMessage />
265
+
// </FormItem>
266
+
// )}
267
+
// />
268
+
//
269
+
// <Button
270
+
// type="button"
271
+
// variant="destructive"
272
+
// className="size-8"
273
+
// onClick={(e) => {
274
+
// e.preventDefault();
275
+
// steps.remove(index);
276
+
// }}
277
+
// >
278
+
// <TrashIcon />
279
+
// </Button>
280
+
// </div>
281
+
// </SortableItem>
282
+
// ))}
283
+
// </div>
284
+
// </Sortable>
285
+
// <Button
286
+
// type="button"
287
+
// variant="secondary"
288
+
// onClick={(e) => {
289
+
// e.preventDefault();
290
+
// steps.append({ text: "" });
291
+
// }}
292
+
// >
293
+
// Add
294
+
// </Button>
295
+
// </div>
296
+
//
297
+
// <div className="grid justify-end">
298
+
// <Button
299
+
// type="submit"
300
+
// className="ml-auto"
301
+
// disabled={isPending}
302
+
// >
303
+
// Submit
304
+
// </Button>
305
+
// </div>
306
+
// </form>
307
+
// </Form>
308
+
// </CardContent>
309
+
// </Card>
310
+
// </div>
311
+
// </>
312
+
// );
328
313
}
329
314
330
315
const Breadcrumbs = () => (
+52
-70
apps/web/src/routes/_.(auth)/login.tsx
+52
-70
apps/web/src/routes/_.(auth)/login.tsx
···
13
13
CardHeader,
14
14
CardTitle,
15
15
} from '@/components/ui/card'
16
+
import { Field, FieldError, FieldGroup, FieldLabel } from '@/components/ui/field'
16
17
import { Input } from '@/components/ui/input'
17
18
import { Label } from '@/components/ui/label'
18
19
import { Separator } from '@/components/ui/separator'
19
20
import { SidebarTrigger } from '@/components/ui/sidebar'
20
-
import { sleep } from '@/lib/utils'
21
-
import {
22
-
createAuthorizationUrl,
23
-
resolveFromIdentity,
24
-
} from '@atcute/oauth-browser-client'
21
+
import { useSession } from '@/state/auth/session'
25
22
import { useMutation } from '@tanstack/react-query'
26
23
import { createFileRoute } from '@tanstack/react-router'
27
24
import { useState } from 'react'
···
31
28
})
32
29
33
30
function RouteComponent() {
31
+
const { signIn } = useSession();
34
32
const [handle, setHandle] = useState('')
35
33
36
34
const { mutate, isPending, error } = useMutation({
37
35
mutationKey: ['login'],
38
36
mutationFn: async () => {
39
-
const { identity, metadata } = await resolveFromIdentity(handle)
40
-
41
-
const authUrl = await createAuthorizationUrl({
42
-
metadata: metadata,
43
-
identity: identity,
44
-
scope: 'atproto transition:generic',
45
-
})
46
-
47
-
await sleep(200)
48
-
49
-
return authUrl
50
-
},
51
-
onSuccess: async (authUrl: URL) => {
52
-
window.location.assign(authUrl)
53
-
54
-
await new Promise((_resolve, reject) => {
55
-
const listener = () => {
56
-
reject(new Error(`user aborted the login request`))
57
-
}
58
-
59
-
window.addEventListener('pageshow', listener, { once: true })
60
-
})
37
+
await signIn(handle);
38
+
return;
61
39
},
62
40
})
63
41
···
77
55
</div>
78
56
</header>
79
57
<div className="flex flex-1 flex-col items-center justify-center gap-4 p-4 pt-0">
80
-
<Card className="max-w-sm w-full">
81
-
<CardHeader>
82
-
<CardTitle>Log in</CardTitle>
83
-
<CardDescription>
84
-
Enter your handle below to sign in to your account.
85
-
</CardDescription>
86
-
</CardHeader>
87
-
<CardContent>
88
-
<div className="flex flex-col gap-2">
89
-
<Label htmlFor="handle">Handle</Label>
90
-
<Input
91
-
className={`${error ? 'border-destructive text-destructive' : ''}`}
92
-
type="text"
93
-
id="handle"
94
-
name="handle"
95
-
placeholder="johndoe.bsky.social"
96
-
required
97
-
value={handle}
98
-
onChange={(e) => setHandle(e.currentTarget.value)}
99
-
/>
100
-
{error && (
101
-
<p className="text-sm font-medium text-destructive">
102
-
{error.message}
103
-
</p>
104
-
)}
105
-
</div>
106
-
</CardContent>
107
-
<CardFooter className="grid gap-2">
108
-
<Button onClick={() => mutate()} disabled={isPending}>
109
-
Log in
110
-
</Button>
111
-
<p className="text-sm text-muted-foreground text-center">
112
-
Don't have an account?{' '}
113
-
<a
114
-
className="font-bold text-primary"
115
-
href="https://bsky.app/"
116
-
target="_blank"
117
-
>
118
-
Sign up on Bluesky!
119
-
</a>
120
-
</p>
121
-
</CardFooter>
122
-
</Card>
58
+
<form onSubmit={e => {
59
+
e.preventDefault();
60
+
mutate();
61
+
}}>
62
+
<Card className="max-w-sm w-full">
63
+
<CardHeader>
64
+
<CardTitle>Log in</CardTitle>
65
+
<CardDescription>
66
+
Enter your Atmosphere handle below to sign in to your account.
67
+
</CardDescription>
68
+
</CardHeader>
69
+
<CardContent>
70
+
<FieldGroup>
71
+
<Field data-invalid={error ? true : false}>
72
+
<FieldLabel htmlFor="handle">Handle</FieldLabel>
73
+
<Input
74
+
id="handle"
75
+
placeholder="johndoe.bsky.social"
76
+
required
77
+
autoComplete="username"
78
+
aria-invalid={error ? 'true' : 'false'}
79
+
tabIndex={0}
80
+
autoFocus
81
+
value={handle}
82
+
onChange={(e) => setHandle(e.currentTarget.value)}
83
+
/>
84
+
{error && <FieldError>{error.message}</FieldError>}
85
+
</Field>
86
+
</FieldGroup>
87
+
</CardContent>
88
+
<CardFooter className="grid gap-2">
89
+
<Button type="submit" disabled={isPending}>
90
+
Log in
91
+
</Button>
92
+
<p className="text-sm text-muted-foreground text-center">
93
+
Don't have an account?{' '}
94
+
<a
95
+
className="font-bold text-primary"
96
+
href="https://bsky.app/"
97
+
target="_blank"
98
+
>
99
+
Sign up on Bluesky!
100
+
</a>
101
+
</p>
102
+
</CardFooter>
103
+
</Card>
104
+
</form>
123
105
</div>
124
106
</>
125
107
)
+3
-2
apps/web/src/routes/__root.tsx
+3
-2
apps/web/src/routes/__root.tsx
···
3
3
SidebarInset,
4
4
SidebarProvider,
5
5
} from '@/components/ui/sidebar'
6
-
import { AuthContextType } from '@/state/auth';
6
+
import { ClientContext, SessionContext } from '@/state/auth';
7
7
import { Outlet, createRootRouteWithContext } from '@tanstack/react-router'
8
8
9
9
type RootContext = {
10
-
auth: AuthContextType;
10
+
session: SessionContext;
11
+
client: ClientContext['client'];
11
12
};
12
13
13
14
export const Route = createRootRouteWithContext<RootContext>()({
+8
-8
apps/web/src/screens/Recipes/RecipeCard.tsx
+8
-8
apps/web/src/screens/Recipes/RecipeCard.tsx
···
1
1
import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar";
2
2
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card";
3
-
import { BlueRecipesFeedGetRecipes } from "@atcute/client/lexicons";
4
3
import { Link } from "@tanstack/react-router";
5
4
import { Clock, CookingPot, ListIcon } from "lucide-react";
5
+
import { BlueRecipesFeedGetRecipes } from "@cookware/lexicons";
6
6
7
7
type RecipeCardProps = {
8
-
recipe: BlueRecipesFeedGetRecipes.Result;
8
+
recipe: BlueRecipesFeedGetRecipes.$output['recipes'][0];
9
9
};
10
10
11
11
export const RecipeCard = ({ recipe }: RecipeCardProps) => {
···
13
13
<Link to="/recipes/$author/$rkey" params={{ author: recipe.author.handle, rkey: recipe.rkey }} className="w-full">
14
14
<Card className="w-full">
15
15
<CardHeader>
16
+
<CardTitle>{recipe.record.title}</CardTitle>
16
17
<CardDescription className="flex items-center space-x-2">
17
18
<Avatar className="h-6 w-6 rounded-lg">
18
-
<AvatarImage src={recipe.author.avatarUrl} alt={recipe.author.displayName} />
19
+
<AvatarImage src={recipe.author.avatar} alt={recipe.author.displayName} />
19
20
<AvatarFallback className="rounded-lg">{recipe.author.displayName}</AvatarFallback>
20
21
</Avatar>
21
22
22
23
<span>{recipe.author.displayName}</span>
23
24
</CardDescription>
24
-
<CardTitle>{recipe.title}</CardTitle>
25
25
</CardHeader>
26
26
<CardContent>
27
-
<p>{recipe.description}</p>
27
+
<p>{recipe.record.description}</p>
28
28
</CardContent>
29
29
<CardFooter className="flex gap-6 text-sm text-muted-foreground">
30
30
<span className="flex items-center gap-2">
31
-
<ListIcon className="size-4" /> <span>{recipe.steps}</span>
31
+
<ListIcon className="size-4" /> <span>{recipe.record.steps.length}</span>
32
32
</span>
33
33
34
34
<span className="flex items-center gap-2">
35
-
<CookingPot className="size-4" /> <span>{recipe.ingredients}</span>
35
+
<CookingPot className="size-4" /> <span>{recipe.record.ingredients.length}</span>
36
36
</span>
37
37
38
38
<span className="flex items-center gap-2">
39
-
<Clock className="size-4" /> <span>{recipe.time} mins</span>
39
+
<Clock className="size-4" /> <span>{recipe.record.time} mins</span>
40
40
</span>
41
41
</CardFooter>
42
42
</Card>
+38
apps/web/src/state/auth/client.tsx
+38
apps/web/src/state/auth/client.tsx
···
1
+
import { Client, simpleFetchHandler } from "@atcute/client";
2
+
import { createContext, PropsWithChildren, useContext, useEffect, useState } from "react";
3
+
import { useSession } from "./session";
4
+
5
+
export type ClientContext = {
6
+
client: Client;
7
+
};
8
+
9
+
const clientContext = createContext<ClientContext>({
10
+
client: new Client({ handler: simpleFetchHandler({ service: import.meta.env.VITE_API_SERVICE }) }),
11
+
});
12
+
13
+
export const ClientProvider = ({ children }: PropsWithChildren) => {
14
+
const { agent } = useSession();
15
+
const [client, setClient] = useState<Client>(
16
+
() => new Client({ handler: simpleFetchHandler({ service: import.meta.env.VITE_API_SERVICE }) })
17
+
);
18
+
19
+
useEffect(() => {
20
+
setClient(new Client({
21
+
handler: agent ?? simpleFetchHandler({ service: import.meta.env.VITE_API_SERVICE }),
22
+
proxy: {
23
+
did: 'did:web:localhost',
24
+
serviceId: '#api_service'
25
+
},
26
+
}));
27
+
}, [agent]);
28
+
29
+
return (
30
+
<clientContext.Provider value={{ client: client }}>
31
+
{children}
32
+
</clientContext.Provider>
33
+
);
34
+
}
35
+
36
+
export const useClient = () => {
37
+
return useContext(clientContext).client;
38
+
}
+2
apps/web/src/state/auth/index.ts
+2
apps/web/src/state/auth/index.ts
+121
apps/web/src/state/auth/session.tsx
+121
apps/web/src/state/auth/session.tsx
···
1
+
import { isDid, isActorIdentifier } from "@atcute/lexicons/syntax";
2
+
import { createAuthorizationUrl, deleteStoredSession, finalizeAuthorization, getSession, OAuthUserAgent, Session } from "@atcute/oauth-browser-client";
3
+
import { createContext, PropsWithChildren, useContext, useEffect, useState } from "react";
4
+
5
+
export type SessionContext = {
6
+
session: null | Session;
7
+
agent: null | OAuthUserAgent;
8
+
isLoading: boolean;
9
+
isLoggedIn: boolean;
10
+
signIn: (handle: string) => Promise<void>;
11
+
signOut: () => Promise<void>;
12
+
};
13
+
14
+
const sessionContext = createContext<SessionContext>({
15
+
session: null,
16
+
agent: null,
17
+
isLoading: false,
18
+
isLoggedIn: false,
19
+
signIn: async () => {
20
+
throw new Error("AuthContext not initialized");
21
+
},
22
+
signOut: async () => {
23
+
throw new Error("AuthContext not initialized");
24
+
},
25
+
});
26
+
27
+
const LS_LAST_SIGNED_IN = "recipes:last-signed-in";
28
+
29
+
export const SessionProvider = ({ children }: PropsWithChildren<{}>) => {
30
+
const [initialized, setInitialized] = useState(false);
31
+
const [loading, setLoading] = useState(true);
32
+
const [session, setSession] = useState<null | Session>(null);
33
+
const [agent, setAgent] = useState<null | OAuthUserAgent>(null);
34
+
35
+
useEffect(() => {
36
+
setInitialized(false);
37
+
setSession(null);
38
+
setAgent(null);
39
+
40
+
const params = new URLSearchParams(location.hash.slice(1));
41
+
if (params.has("state") && params.has("iss") && params.has("code")) {
42
+
// If there is an active auth attempt:
43
+
history.replaceState(null, "", location.pathname + location.search);
44
+
console.log("finalizing authorization...");
45
+
finalizeAuthorization(params)
46
+
.then(val => {
47
+
setSession(val.session);
48
+
setAgent(new OAuthUserAgent(val.session));
49
+
})
50
+
.catch(err => {
51
+
console.error("Failed to initialize session:", err);
52
+
})
53
+
.finally(() => {
54
+
setLoading(false);
55
+
setInitialized(true);
56
+
});
57
+
} else {
58
+
const lastSignedIn = localStorage.getItem(LS_LAST_SIGNED_IN);
59
+
if (lastSignedIn && isDid(lastSignedIn)) {
60
+
getSession(lastSignedIn, { allowStale: true })
61
+
.then((session) => {
62
+
setSession(session);
63
+
setAgent(new OAuthUserAgent(session));
64
+
})
65
+
.catch(err => {
66
+
console.error("Failed to initialize session:", err);
67
+
})
68
+
}
69
+
70
+
setLoading(false);
71
+
setInitialized(true);
72
+
}
73
+
}, []);
74
+
75
+
const signIn = async (handle: string) => {
76
+
if (!isActorIdentifier(handle)) throw new Error("Invalid handle or DID!");
77
+
const authUrl = await createAuthorizationUrl({
78
+
target: { type: 'account', identifier: handle },
79
+
scope: 'atproto transition:generic',
80
+
});
81
+
window.location.assign(authUrl);
82
+
};
83
+
84
+
const signOut = async () => {
85
+
if (!agent || !session) return;
86
+
87
+
const did = session.info.sub;
88
+
try {
89
+
const session = await getSession(did, { allowStale: true });
90
+
const agent = new OAuthUserAgent(session);
91
+
92
+
await agent.signOut();
93
+
setSession(null);
94
+
} catch(err) {
95
+
deleteStoredSession(did);
96
+
}
97
+
};
98
+
99
+
if (!initialized) return (
100
+
<p>Loading...</p>
101
+
);
102
+
103
+
return (
104
+
<sessionContext.Provider value={{
105
+
isLoading: loading,
106
+
isLoggedIn: session !== null,
107
+
session,
108
+
agent,
109
+
signIn,
110
+
signOut,
111
+
}}>
112
+
{children}
113
+
</sessionContext.Provider>
114
+
);
115
+
};
116
+
117
+
export const useSession = () => {
118
+
const ctx = useContext(sessionContext);
119
+
if (!ctx) throw new Error("useSession() must be called inside a <SessionProvider />!");
120
+
return ctx;
121
+
};
-78
apps/web/src/state/auth.tsx
-78
apps/web/src/state/auth.tsx
···
1
-
import { At } from "@atcute/client/lexicons";
2
-
import { finalizeAuthorization, getSession, OAuthUserAgent } from "@atcute/oauth-browser-client";
3
-
import { createContext, PropsWithChildren, useContext, useEffect, useState } from "react";
4
-
5
-
export type AuthContextType = {
6
-
isLoggedIn: boolean;
7
-
agent?: OAuthUserAgent;
8
-
logOut: () => Promise<void>;
9
-
};
10
-
11
-
const AuthContext = createContext<AuthContextType>({
12
-
isLoggedIn: false,
13
-
logOut: async () => {},
14
-
});
15
-
16
-
export const AuthProvider = ({ children }: PropsWithChildren) => {
17
-
const [isReady, setIsReady] = useState(false);
18
-
const [isLoggedIn, setIsLoggedIn] = useState(false);
19
-
const [agent, setAgent] = useState<OAuthUserAgent | undefined>(undefined);
20
-
21
-
useEffect(() => {
22
-
const init = async () => {
23
-
const params = new URLSearchParams(location.hash.slice(1));
24
-
25
-
if (params.has("state") && (params.has("code") || params.has("error"))) {
26
-
history.replaceState(null, "", location.pathname + location.search);
27
-
28
-
const session = await finalizeAuthorization(params);
29
-
const did = session.info.sub;
30
-
31
-
localStorage.setItem("lastSignedIn", did);
32
-
return session;
33
-
34
-
} else {
35
-
const lastSignedIn = localStorage.getItem("lastSignedIn");
36
-
37
-
if (lastSignedIn) {
38
-
try {
39
-
return await getSession(lastSignedIn as At.DID);
40
-
} catch (err) {
41
-
localStorage.removeItem("lastSignedIn");
42
-
throw err;
43
-
}
44
-
}
45
-
}
46
-
};
47
-
48
-
init()
49
-
.then(session => {
50
-
if (session) {
51
-
setAgent(new OAuthUserAgent(session));
52
-
setIsLoggedIn(true);
53
-
}
54
-
55
-
setIsReady(true)
56
-
})
57
-
.catch(() => {});
58
-
}, []);
59
-
60
-
if (!isReady) return null;
61
-
62
-
return (
63
-
<AuthContext.Provider value={{
64
-
isLoggedIn,
65
-
agent,
66
-
logOut: async () => {
67
-
setIsLoggedIn(false);
68
-
await agent?.signOut();
69
-
},
70
-
}}>
71
-
{children}
72
-
</AuthContext.Provider>
73
-
);
74
-
};
75
-
76
-
export const useAuth = () => {
77
-
return useContext(AuthContext);
78
-
};
+1
-3
apps/web/src/vite-env.d.ts
+1
-3
apps/web/src/vite-env.d.ts
···
1
1
/// <reference types="vite/client" />
2
-
/// <reference types="@cookware/lexicons" />
3
-
/// <reference types="@atcute/bluesky/lexicons" />
4
2
5
3
interface ImportMetaEnv {
6
4
readonly VITE_API_SERVICE: string;
7
5
readonly VITE_DEV_SERVER_PORT?: string;
8
6
readonly VITE_CLIENT_URI: string;
9
7
readonly VITE_OAUTH_CLIENT_ID: string;
10
-
readonly VITE_OAUTH_REDIRECT_URL: string;
8
+
readonly VITE_OAUTH_REDIRECT_URI: string;
11
9
readonly VITE_OAUTH_SCOPE: string;
12
10
}
13
11
+2
-2
apps/web/tailwind.config.js
+2
-2
apps/web/tailwind.config.js
···
1
1
import animate from 'tailwindcss-animate';
2
2
/** @type {import('tailwindcss').Config} */
3
3
export default {
4
-
darkMode: ["class"],
5
-
content: ["./index.html", "./src/**/*.{ts,tsx,js,jsx}"],
4
+
darkMode: ["class"],
5
+
content: ["./index.html", "./src/**/*.{ts,tsx,js,jsx}"],
6
6
theme: {
7
7
extend: {
8
8
borderRadius: {
+29
-29
apps/web/vite.config.ts
+29
-29
apps/web/vite.config.ts
···
1
1
import { defineConfig } from 'vite'
2
-
import react from '@vitejs/plugin-react-swc'
3
-
import { TanStackRouterVite } from '@tanstack/router-plugin/vite'
2
+
import react from '@vitejs/plugin-react'
3
+
import { tanstackRouter } from '@tanstack/router-plugin/vite'
4
4
import path from 'path'
5
-
import metadata from "./public/client-metadata.json";
5
+
import metadata from "./public/oauth-client-metadata.json" with { type: 'json' };
6
6
7
7
const SERVER_HOST = "127.0.0.1";
8
8
const SERVER_PORT = 5173;
···
10
10
// https://vite.dev/config/
11
11
export default defineConfig({
12
12
plugins: [
13
-
TanStackRouterVite(),
14
-
react(),
15
-
16
-
{
17
-
name: "oauth",
18
-
config(_conf, { command }) {
19
-
if (command === "build") {
20
-
process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
21
-
process.env.VITE_OAUTH_REDIRECT_URL = metadata.redirect_uris[0];
22
-
} else {
23
-
const redirectUri = ((): string => {
24
-
const url = new URL(metadata.redirect_uris[0]);
25
-
return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`;
26
-
})();
13
+
tanstackRouter(),
14
+
react({ babel: { plugins: ['babel-plugin-react-compiler'] } }),
15
+
{
16
+
name: '_config',
17
+
config(_conf, { command }) {
18
+
if (command === 'build') {
19
+
process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
20
+
process.env.VITE_OAUTH_REDIRECT_URI = metadata.redirect_uris[0];
21
+
} else {
22
+
const redirectUri = (() => {
23
+
const url = new URL(metadata.redirect_uris[0]);
24
+
return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`;
25
+
})();
27
26
28
-
const clientId =
29
-
`http://localhost` +
30
-
`?redirect_uri=${encodeURIComponent(redirectUri)}` +
31
-
`&scope=${encodeURIComponent(metadata.scope)}`;
27
+
const clientId =
28
+
`http://localhost` +
29
+
`?redirect_uri=${encodeURIComponent(redirectUri)}` +
30
+
`&scope=${encodeURIComponent(metadata.scope)}`;
32
31
33
-
process.env.VITE_DEV_SERVER_PORT = "" + SERVER_PORT;
34
-
process.env.VITE_OAUTH_CLIENT_ID = clientId;
35
-
process.env.VITE_OAUTH_REDIRECT_URL = redirectUri;
36
-
}
32
+
process.env.VITE_API_SERVICE = 'http://localhost:3000';
33
+
process.env.VITE_DEV_SERVER_PORT = '' + SERVER_PORT;
34
+
process.env.VITE_OAUTH_CLIENT_ID = clientId;
35
+
process.env.VITE_OAUTH_REDIRECT_URI = redirectUri;
36
+
}
37
37
38
-
process.env.VITE_CLIENT_URI = metadata.client_uri;
39
-
process.env.VITE_OAUTH_SCOPE = metadata.scope;
40
-
},
41
-
},
38
+
process.env.VITE_CLIENT_URI = metadata.client_uri;
39
+
process.env.VITE_OAUTH_SCOPE = metadata.scope;
40
+
},
41
+
},
42
42
],
43
43
server: {
44
44
host: SERVER_HOST,
+2054
bun.lock
+2054
bun.lock
···
1
+
{
2
+
"lockfileVersion": 1,
3
+
"configVersion": 1,
4
+
"workspaces": {
5
+
"": {
6
+
"name": "@cookware/monorepo",
7
+
"devDependencies": {
8
+
"turbo": "^2.3.3",
9
+
"typescript": "^5.9.3",
10
+
},
11
+
},
12
+
"apps/api": {
13
+
"name": "@cookware/api",
14
+
"dependencies": {
15
+
"@atcute/atproto": "^3.1.9",
16
+
"@atcute/client": "catalog:",
17
+
"@atcute/identity": "^1.1.3",
18
+
"@atcute/identity-resolver": "^1.1.4",
19
+
"@atcute/lexicons": "catalog:",
20
+
"@atcute/xrpc-server": "^0.1.3",
21
+
"@cookware/database": "workspace:*",
22
+
"@cookware/lexicons": "workspace:*",
23
+
"@libsql/client": "^0.14.0",
24
+
"drizzle-orm": "catalog:",
25
+
"hono": "^4.10.7",
26
+
"pino": "^9.5.0",
27
+
},
28
+
"devDependencies": {
29
+
"@atcute/bluesky": "^3.2.10",
30
+
"@cookware/tsconfig": "workspace:*",
31
+
"@types/bun": "catalog:",
32
+
"drizzle-kit": "^0.29.0",
33
+
"pino-pretty": "^13.1.2",
34
+
"rimraf": "^6.0.1",
35
+
},
36
+
},
37
+
"apps/ingester": {
38
+
"name": "@cookware/ingester",
39
+
"dependencies": {
40
+
"@atcute/client": "catalog:",
41
+
"@atcute/identity": "^1.1.3",
42
+
"@atcute/identity-resolver": "^1.1.4",
43
+
"@atcute/jetstream": "^1.1.2",
44
+
"@atcute/lexicons": "catalog:",
45
+
"@badrap/valita": "^0.4.6",
46
+
"@cookware/database": "workspace:^",
47
+
"@cookware/lexicons": "workspace:*",
48
+
"@sentry/node": "^8.42.0",
49
+
"pino": "^9.5.0",
50
+
},
51
+
"devDependencies": {
52
+
"@cookware/tsconfig": "workspace:*",
53
+
"@types/bun": "catalog:",
54
+
"@types/ws": "^8.5.13",
55
+
"pino-pretty": "^13.0.0",
56
+
"rimraf": "^6.0.1",
57
+
"typescript": "^5.7.2",
58
+
},
59
+
},
60
+
"apps/web": {
61
+
"name": "@cookware/web",
62
+
"version": "0.0.0",
63
+
"dependencies": {
64
+
"@atcute/atproto": "^3.1.9",
65
+
"@atcute/client": "catalog:",
66
+
"@atcute/identity-resolver": "^1.1.4",
67
+
"@atcute/lexicons": "catalog:",
68
+
"@atcute/oauth-browser-client": "^2.0.1",
69
+
"@atproto/common": "^0.4.5",
70
+
"@atproto/common-web": "^0.3.1",
71
+
"@dnd-kit/core": "^6.3.1",
72
+
"@dnd-kit/modifiers": "^9.0.0",
73
+
"@dnd-kit/sortable": "^10.0.0",
74
+
"@dnd-kit/utilities": "^3.2.2",
75
+
"@hookform/resolvers": "^3.9.1",
76
+
"@radix-ui/react-avatar": "^1.1.1",
77
+
"@radix-ui/react-collapsible": "^1.1.1",
78
+
"@radix-ui/react-dialog": "^1.1.4",
79
+
"@radix-ui/react-dropdown-menu": "^2.1.4",
80
+
"@radix-ui/react-icons": "^1.3.2",
81
+
"@radix-ui/react-label": "^2.1.8",
82
+
"@radix-ui/react-separator": "^1.1.8",
83
+
"@radix-ui/react-slot": "^1.2.4",
84
+
"@radix-ui/react-tooltip": "^1.1.4",
85
+
"@tanstack/react-query": "^5.62.2",
86
+
"@tanstack/react-query-devtools": "^5.62.2",
87
+
"@tanstack/react-router": "^1.91.2",
88
+
"axios": "^1.7.9",
89
+
"class-variance-authority": "^0.7.1",
90
+
"clsx": "^2.1.1",
91
+
"lucide-react": "^0.464.0",
92
+
"react-dom": "19.0.0",
93
+
"react-hook-form": "^7.54.1",
94
+
"tailwind-merge": "^2.5.5",
95
+
"tailwindcss-animate": "^1.0.7",
96
+
"zod": "^3.23.8",
97
+
},
98
+
"devDependencies": {
99
+
"@atcute/bluesky": "^1.0.9",
100
+
"@cookware/lexicons": "workspace:*",
101
+
"@eslint/js": "^9.15.0",
102
+
"@tanstack/eslint-plugin-query": "^5.62.1",
103
+
"@tanstack/router-devtools": "^1.85.5",
104
+
"@tanstack/router-plugin": "^1.85.3",
105
+
"@types/node": "^22.10.1",
106
+
"@types/react": "^19.0.0",
107
+
"@types/react-dom": "^19.0.0",
108
+
"@vitejs/plugin-react": "^5.1.1",
109
+
"@vitejs/plugin-react-swc": "^3.5.0",
110
+
"autoprefixer": "^10.4.20",
111
+
"babel-plugin-react-compiler": "^1.0.0",
112
+
"cssnano": "^7.0.6",
113
+
"eslint": "^9.15.0",
114
+
"eslint-plugin-react-hooks": "^5.0.0",
115
+
"eslint-plugin-react-refresh": "^0.4.14",
116
+
"globals": "^15.12.0",
117
+
"postcss": "^8.4.49",
118
+
"react": "19.0.0",
119
+
"tailwindcss": "^3.4.16",
120
+
"typescript": "~5.6.2",
121
+
"typescript-eslint": "^8.15.0",
122
+
"vite": "^7.2.4",
123
+
},
124
+
},
125
+
"libs/database": {
126
+
"name": "@cookware/database",
127
+
"version": "0.0.0",
128
+
"dependencies": {
129
+
"@libsql/client": "^0.15.15",
130
+
"drizzle-orm": "catalog:",
131
+
"pg": "^8.16.3",
132
+
"zod": "^3.23.8",
133
+
},
134
+
"devDependencies": {
135
+
"@atcute/lexicons": "catalog:",
136
+
"@atproto/oauth-client-node": "^0.2.3",
137
+
"@cookware/lexicons": "workspace:*",
138
+
"@cookware/tsconfig": "workspace:*",
139
+
"@types/bun": "catalog:",
140
+
"@types/node": "^22.10.1",
141
+
"@types/pg": "^8.15.6",
142
+
"drizzle-kit": "^0.29.0",
143
+
"typescript": "^5.2.2",
144
+
},
145
+
},
146
+
"libs/lexicons": {
147
+
"name": "@cookware/lexicons",
148
+
"version": "0.0.0",
149
+
"dependencies": {
150
+
"@atcute/atproto": "catalog:",
151
+
"@atcute/bluesky": "catalog:",
152
+
"@atcute/client": "catalog:",
153
+
"@atcute/lexicons": "catalog:",
154
+
},
155
+
"devDependencies": {
156
+
"@atcute/lex-cli": "^2.3.3",
157
+
"@cookware/tsconfig": "workspace:*",
158
+
"@typelex/emitter": "^0.4.0",
159
+
"@types/bun": "catalog:",
160
+
"@typespec/compiler": "^1.6.0",
161
+
},
162
+
},
163
+
"libs/tsconfig": {
164
+
"name": "@cookware/tsconfig",
165
+
"version": "0.0.0",
166
+
"dependencies": {
167
+
"@types/bun": "^1.3.3",
168
+
},
169
+
},
170
+
},
171
+
"catalog": {
172
+
"@atcute/atproto": "^3.1.9",
173
+
"@atcute/bluesky": "^3.2.11",
174
+
"@atcute/client": "^4.0.5",
175
+
"@atcute/lexicons": "^1.2.5",
176
+
"@types/bun": "^1.3.3",
177
+
"drizzle-orm": "^0.44.7",
178
+
},
179
+
"packages": {
180
+
"@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="],
181
+
182
+
"@atcute/atproto": ["@atcute/atproto@3.1.9", "", { "dependencies": { "@atcute/lexicons": "^1.2.2" } }, "sha512-DyWwHCTdR4hY2BPNbLXgVmm7lI+fceOwWbE4LXbGvbvVtSn+ejSVFaAv01Ra3kWDha0whsOmbJL8JP0QPpf1+w=="],
183
+
184
+
"@atcute/bluesky": ["@atcute/bluesky@3.2.11", "", { "dependencies": { "@atcute/atproto": "^3.1.9", "@atcute/lexicons": "^1.2.5" } }, "sha512-AboS6y4t+zaxIq7E4noue10csSpIuk/Uwo30/l6GgGBDPXrd7STw8Yb5nGZQP+TdG/uC8/c2mm7UnY65SDOh6A=="],
185
+
186
+
"@atcute/cbor": ["@atcute/cbor@2.2.8", "", { "dependencies": { "@atcute/cid": "^2.2.6", "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5" } }, "sha512-UzOAN9BuN6JCXgn0ryV8qZuRJUDrNqrbLd6EFM8jc6RYssjRyGRxNy6RZ1NU/07Hd8Tq/0pz8+nQiMu5Zai5uw=="],
187
+
188
+
"@atcute/cid": ["@atcute/cid@2.2.6", "", { "dependencies": { "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5" } }, "sha512-bTAHHbJ24p+E//V4KCS4xdmd39o211jJswvqQOevj7vk+5IYcgDLx1ryZWZ1sEPOo9x875li/kj5gpKL14RDwQ=="],
189
+
190
+
"@atcute/client": ["@atcute/client@4.0.5", "", { "dependencies": { "@atcute/identity": "^1.1.1", "@atcute/lexicons": "^1.2.2" } }, "sha512-R8Qen8goGmEkynYGg2m6XFlVmz0GTDvQ+9w+4QqOob+XMk8/WDpF4aImev7WKEde/rV2gjcqW7zM8E6W9NShDA=="],
191
+
192
+
"@atcute/crypto": ["@atcute/crypto@2.2.6", "", { "dependencies": { "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5", "@noble/secp256k1": "^3.0.0" } }, "sha512-vkuexF+kmrKE1/Uqzub99Qi4QpnxA2jbu60E6PTgL4XypELQ6rb59MB/J1VbY2gs0kd3ET7+L3+NWpKD5nXyfA=="],
193
+
194
+
"@atcute/identity": ["@atcute/identity@1.1.3", "", { "dependencies": { "@atcute/lexicons": "^1.2.4", "@badrap/valita": "^0.4.6" } }, "sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng=="],
195
+
196
+
"@atcute/identity-resolver": ["@atcute/identity-resolver@1.1.4", "", { "dependencies": { "@atcute/lexicons": "^1.2.2", "@atcute/util-fetch": "^1.0.3", "@badrap/valita": "^0.4.6" }, "peerDependencies": { "@atcute/identity": "^1.0.0" } }, "sha512-/SVh8vf2cXFJenmBnGeYF2aY3WGQm3cJeew5NWTlkqoy3LvJ5wkvKq9PWu4Tv653VF40rPOp6LOdVr9Fa+q5rA=="],
197
+
198
+
"@atcute/jetstream": ["@atcute/jetstream@1.1.2", "", { "dependencies": { "@atcute/lexicons": "^1.2.2", "@badrap/valita": "^0.4.6", "@mary-ext/event-iterator": "^1.0.0", "@mary-ext/simple-event-emitter": "^1.0.0", "partysocket": "^1.1.5", "type-fest": "^4.41.0", "yocto-queue": "^1.2.1" } }, "sha512-u6p/h2xppp7LE6W/9xErAJ6frfN60s8adZuCKtfAaaBBiiYbb1CfpzN8Uc+2qtJZNorqGvuuDb5572Jmh7yHBQ=="],
199
+
200
+
"@atcute/lex-cli": ["@atcute/lex-cli@2.3.3", "", { "dependencies": { "@atcute/lexicon-doc": "^2.0.0", "@badrap/valita": "^0.4.6", "@optique/core": "^0.6.2", "@optique/run": "^0.6.2", "picocolors": "^1.1.1", "prettier": "^3.6.2" }, "bin": { "lex-cli": "cli.mjs" } }, "sha512-L+fxfJWVBFiuS53yK2aDg7F3R0Ak7UOj9BOM2khofR6yBSKHrkCuk3b6GrkbcMKo+9O0ynaLsuXxUNlHvw/m3w=="],
201
+
202
+
"@atcute/lexicon-doc": ["@atcute/lexicon-doc@2.0.4", "", { "dependencies": { "@atcute/identity": "^1.1.3", "@atcute/lexicons": "^1.2.5", "@badrap/valita": "^0.4.6" } }, "sha512-YfwlYFoYiBvRIYG0I1zsINCTFugFtS8l67uT3nQ04zdKVflzdg8uUj8cNZYRNY1V7okoOPdikhR4kPFhYGyemw=="],
203
+
204
+
"@atcute/lexicons": ["@atcute/lexicons@1.2.5", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "esm-env": "^1.2.2" } }, "sha512-9yO9WdgxW8jZ7SbzUycH710z+JmsQ9W9n5S6i6eghYju32kkluFmgBeS47r8e8p2+Dv4DemS7o/3SUGsX9FR5Q=="],
205
+
206
+
"@atcute/multibase": ["@atcute/multibase@1.1.6", "", { "dependencies": { "@atcute/uint8array": "^1.0.5" } }, "sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg=="],
207
+
208
+
"@atcute/oauth-browser-client": ["@atcute/oauth-browser-client@2.0.1", "", { "dependencies": { "@atcute/client": "^4.0.5", "@atcute/identity": "^1.1.1", "@atcute/identity-resolver": "^1.1.4", "@atcute/lexicons": "^1.2.2", "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5", "nanoid": "^5.1.5" } }, "sha512-lG021GkeORG06zfFf4bH85egObjBEKHNgAWHvbtY/E2dX4wxo88hf370pJDx8acdnuUJLJ2VKPikJtZwo4Heeg=="],
209
+
210
+
"@atcute/uint8array": ["@atcute/uint8array@1.0.5", "", {}, "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q=="],
211
+
212
+
"@atcute/util-fetch": ["@atcute/util-fetch@1.0.3", "", { "dependencies": { "@badrap/valita": "^0.4.6" } }, "sha512-f8zzTb/xlKIwv2OQ31DhShPUNCmIIleX6p7qIXwWwEUjX6x8skUtpdISSjnImq01LXpltGV5y8yhV4/Mlb7CRQ=="],
213
+
214
+
"@atcute/xrpc-server": ["@atcute/xrpc-server@0.1.3", "", { "dependencies": { "@atcute/cbor": "^2.2.7", "@atcute/crypto": "^2.2.5", "@atcute/identity": "^1.1.1", "@atcute/identity-resolver": "^1.1.4", "@atcute/lexicons": "^1.2.2", "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5", "@badrap/valita": "^0.4.6", "nanoid": "^5.1.5" } }, "sha512-AMig6MuAL5VfXRZVsQqQXKCXnZgpjTc6UM6RggvyE1qVT8y9tZPFXdP5tt/p6Jf+h4cAw+XMu2uyrGpUmnTSyQ=="],
215
+
216
+
"@atproto-labs/did-resolver": ["@atproto-labs/did-resolver@0.1.13", "", { "dependencies": { "@atproto-labs/fetch": "0.2.3", "@atproto-labs/pipe": "0.1.1", "@atproto-labs/simple-store": "0.2.0", "@atproto-labs/simple-store-memory": "0.1.3", "@atproto/did": "0.1.5", "zod": "^3.23.8" } }, "sha512-DG3YNaCKc6PAIv1Gsz3E1Kufw2t14OBxe4LdKK7KKLCNoex51hm+A5yMevShe3BSll+QosqWYIEgkPSc5xBoGQ=="],
217
+
218
+
"@atproto-labs/fetch": ["@atproto-labs/fetch@0.2.3", "", { "dependencies": { "@atproto-labs/pipe": "0.1.1" } }, "sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw=="],
219
+
220
+
"@atproto-labs/fetch-node": ["@atproto-labs/fetch-node@0.1.9", "", { "dependencies": { "@atproto-labs/fetch": "0.2.3", "@atproto-labs/pipe": "0.1.1", "ipaddr.js": "^2.1.0", "undici": "^6.14.1" } }, "sha512-8sHDDXZEzQptLu8ddUU/8U+THS6dumgPynVX0/1PjUYd4S/FWyPcz6yMIiVChTfzKnZvYRRz47+qvOKhydrHQw=="],
221
+
222
+
"@atproto-labs/handle-resolver": ["@atproto-labs/handle-resolver@0.1.8", "", { "dependencies": { "@atproto-labs/simple-store": "0.2.0", "@atproto-labs/simple-store-memory": "0.1.3", "@atproto/did": "0.1.5", "zod": "^3.23.8" } }, "sha512-Y0ckccoCGDo/3g4thPkgp9QcORmc+qqEaCBCYCZYtfLIQp4775u22wd+4fyEyJP4DqoReKacninkICgRGfs3dQ=="],
223
+
224
+
"@atproto-labs/handle-resolver-node": ["@atproto-labs/handle-resolver-node@0.1.16", "", { "dependencies": { "@atproto-labs/fetch-node": "0.1.9", "@atproto-labs/handle-resolver": "0.1.8", "@atproto/did": "0.1.5" } }, "sha512-i2F989zjyC7b/odrV3/tOpIT1IDIxR3F0khPG4REfOWcmJ89QcP8BiejJ6KFJk3hbTJHq6X9/pTG1vesCvyIKA=="],
225
+
226
+
"@atproto-labs/identity-resolver": ["@atproto-labs/identity-resolver@0.1.18", "", { "dependencies": { "@atproto-labs/did-resolver": "0.1.13", "@atproto-labs/handle-resolver": "0.1.8", "@atproto/syntax": "0.4.0" } }, "sha512-DArYXP1hzZJIBcojun0CWEF+TjAhlGKcVq/RwLiGfY1mKq2yPjCiXyHj+5L0+z9jBSZiAB7L65JgcjI2+MFiRg=="],
227
+
228
+
"@atproto-labs/pipe": ["@atproto-labs/pipe@0.1.1", "", {}, "sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg=="],
229
+
230
+
"@atproto-labs/simple-store": ["@atproto-labs/simple-store@0.2.0", "", {}, "sha512-0bRbAlI8Ayh03wRwncAMEAyUKtZ+AuTS1jgPrfym1WVOAOiottI/ZmgccqLl6w5MbxVcClNQF7WYGKvGwGoIhA=="],
231
+
232
+
"@atproto-labs/simple-store-memory": ["@atproto-labs/simple-store-memory@0.1.3", "", { "dependencies": { "@atproto-labs/simple-store": "0.2.0", "lru-cache": "^10.2.0" } }, "sha512-jkitT9+AtU+0b28DoN92iURLaCt/q/q4yX8q6V+9LSwYlUTqKoj/5NFKvF7x6EBuG+gpUdlcycbH7e60gjOhRQ=="],
233
+
234
+
"@atproto/common": ["@atproto/common@0.4.12", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@ipld/dag-cbor": "^7.0.3", "cbor-x": "^1.5.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.21.0" } }, "sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ=="],
235
+
236
+
"@atproto/common-web": ["@atproto/common-web@0.3.2", "", { "dependencies": { "graphemer": "^1.4.0", "multiformats": "^9.9.0", "uint8arrays": "3.0.0", "zod": "^3.23.8" } }, "sha512-Vx0JtL1/CssJbFAb0UOdvTrkbUautsDfHNOXNTcX2vyPIxH9xOameSqLLunM1hZnOQbJwyjmQCt6TV+bhnanDg=="],
237
+
238
+
"@atproto/did": ["@atproto/did@0.1.5", "", { "dependencies": { "zod": "^3.23.8" } }, "sha512-8+1D08QdGE5TF0bB0vV8HLVrVZJeLNITpRTUVEoABNMRaUS7CoYSVb0+JNQDeJIVmqMjOL8dOjvCUDkp3gEaGQ=="],
239
+
240
+
"@atproto/jwk": ["@atproto/jwk@0.3.0", "", { "dependencies": { "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-MIAXyNMGu1tCNHjqW/8jqfE/wgWCIoK2cJ0mR6UxwhNPvkbe35TcpRYJdtQu/E6MUd7TziyDBa/GO4dKAiePhQ=="],
241
+
242
+
"@atproto/jwk-jose": ["@atproto/jwk-jose@0.1.8", "", { "dependencies": { "@atproto/jwk": "0.3.0", "jose": "^5.2.0" } }, "sha512-aoU2Q0GpIl388KhCcv9YvAxNscALUv3xzLq5gjVPdJ+zmqw94nGZNcjiNvpnbfS+VQM9e2DrrTuwmDXnxfrrSA=="],
243
+
244
+
"@atproto/jwk-webcrypto": ["@atproto/jwk-webcrypto@0.1.8", "", { "dependencies": { "@atproto/jwk": "0.3.0", "@atproto/jwk-jose": "0.1.8", "zod": "^3.23.8" } }, "sha512-oOW/G40f6M0NbTOo8uZgiSsFtcvlfNFldyxm+V+fVo5yKe6cvgvPNqckpqMsoBe6JYfImdc/zdVak9fCSSh41A=="],
245
+
246
+
"@atproto/lexicon": ["@atproto/lexicon@0.4.14", "", { "dependencies": { "@atproto/common-web": "^0.4.2", "@atproto/syntax": "^0.4.0", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-jiKpmH1QER3Gvc7JVY5brwrfo+etFoe57tKPQX/SmPwjvUsFnJAow5xLIryuBaJgFAhnTZViXKs41t//pahGHQ=="],
247
+
248
+
"@atproto/oauth-client": ["@atproto/oauth-client@0.4.0", "", { "dependencies": { "@atproto-labs/did-resolver": "0.1.13", "@atproto-labs/fetch": "0.2.3", "@atproto-labs/handle-resolver": "0.1.8", "@atproto-labs/identity-resolver": "0.1.18", "@atproto-labs/simple-store": "0.2.0", "@atproto-labs/simple-store-memory": "0.1.3", "@atproto/did": "0.1.5", "@atproto/jwk": "0.3.0", "@atproto/oauth-types": "0.3.0", "@atproto/xrpc": "0.7.0", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-uWVnlhennWkgvzqP0l53sFaw6DM6B4zmq0fv1xs05vt56Sjly8YirAj0GVDXlb37/BQRJQ1WOBzJVYDI3bH9uw=="],
249
+
250
+
"@atproto/oauth-client-node": ["@atproto/oauth-client-node@0.2.24", "", { "dependencies": { "@atproto-labs/did-resolver": "0.1.13", "@atproto-labs/handle-resolver-node": "0.1.16", "@atproto-labs/simple-store": "0.2.0", "@atproto/did": "0.1.5", "@atproto/jwk": "0.3.0", "@atproto/jwk-jose": "0.1.8", "@atproto/jwk-webcrypto": "0.1.8", "@atproto/oauth-client": "0.4.0", "@atproto/oauth-types": "0.3.0" } }, "sha512-WsUiFkHjlm80J2d4czP7msYZoxvKB4hDpZGw34RgMD4VLA2jt03GMH4wTQPIZxfV3/9yrgMoOW/BDC9Iv4MavA=="],
251
+
252
+
"@atproto/oauth-types": ["@atproto/oauth-types@0.3.0", "", { "dependencies": { "@atproto/jwk": "0.3.0", "zod": "^3.23.8" } }, "sha512-ptfsJARKODXfuOoDQag4a6PpEkDEj4Urz3jOmnQZy2YspPc/TNm1o0HglU0YehELv1vfhh9gEz40BJztPPhiLA=="],
253
+
254
+
"@atproto/syntax": ["@atproto/syntax@0.4.0", "", {}, "sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA=="],
255
+
256
+
"@atproto/xrpc": ["@atproto/xrpc@0.7.0", "", { "dependencies": { "@atproto/lexicon": "^0.4.11", "zod": "^3.23.8" } }, "sha512-SfhP9dGx2qclaScFDb58Jnrmim5nk4geZXCqg6sB0I/KZhZEkr9iIx1hLCp+sxkIfEsmEJjeWO4B0rjUIJW5cw=="],
257
+
258
+
"@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="],
259
+
260
+
"@babel/compat-data": ["@babel/compat-data@7.28.5", "", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="],
261
+
262
+
"@babel/core": ["@babel/core@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="],
263
+
264
+
"@babel/generator": ["@babel/generator@7.28.5", "", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="],
265
+
266
+
"@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="],
267
+
268
+
"@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="],
269
+
270
+
"@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.5", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ=="],
271
+
272
+
"@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="],
273
+
274
+
"@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="],
275
+
276
+
"@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="],
277
+
278
+
"@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="],
279
+
280
+
"@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="],
281
+
282
+
"@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="],
283
+
284
+
"@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.27.1", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA=="],
285
+
286
+
"@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="],
287
+
288
+
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
289
+
290
+
"@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="],
291
+
292
+
"@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="],
293
+
294
+
"@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="],
295
+
296
+
"@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="],
297
+
298
+
"@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="],
299
+
300
+
"@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="],
301
+
302
+
"@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw=="],
303
+
304
+
"@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw=="],
305
+
306
+
"@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw=="],
307
+
308
+
"@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.5", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA=="],
309
+
310
+
"@babel/preset-typescript": ["@babel/preset-typescript@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g=="],
311
+
312
+
"@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="],
313
+
314
+
"@babel/traverse": ["@babel/traverse@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="],
315
+
316
+
"@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="],
317
+
318
+
"@badrap/valita": ["@badrap/valita@0.4.6", "", {}, "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg=="],
319
+
320
+
"@cbor-extract/cbor-extract-darwin-arm64": ["@cbor-extract/cbor-extract-darwin-arm64@2.2.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w=="],
321
+
322
+
"@cbor-extract/cbor-extract-darwin-x64": ["@cbor-extract/cbor-extract-darwin-x64@2.2.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w=="],
323
+
324
+
"@cbor-extract/cbor-extract-linux-arm": ["@cbor-extract/cbor-extract-linux-arm@2.2.0", "", { "os": "linux", "cpu": "arm" }, "sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q=="],
325
+
326
+
"@cbor-extract/cbor-extract-linux-arm64": ["@cbor-extract/cbor-extract-linux-arm64@2.2.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ=="],
327
+
328
+
"@cbor-extract/cbor-extract-linux-x64": ["@cbor-extract/cbor-extract-linux-x64@2.2.0", "", { "os": "linux", "cpu": "x64" }, "sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw=="],
329
+
330
+
"@cbor-extract/cbor-extract-win32-x64": ["@cbor-extract/cbor-extract-win32-x64@2.2.0", "", { "os": "win32", "cpu": "x64" }, "sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w=="],
331
+
332
+
"@cookware/api": ["@cookware/api@workspace:apps/api"],
333
+
334
+
"@cookware/database": ["@cookware/database@workspace:libs/database"],
335
+
336
+
"@cookware/ingester": ["@cookware/ingester@workspace:apps/ingester"],
337
+
338
+
"@cookware/lexicons": ["@cookware/lexicons@workspace:libs/lexicons"],
339
+
340
+
"@cookware/tsconfig": ["@cookware/tsconfig@workspace:libs/tsconfig"],
341
+
342
+
"@cookware/web": ["@cookware/web@workspace:apps/web"],
343
+
344
+
"@dnd-kit/accessibility": ["@dnd-kit/accessibility@3.1.1", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw=="],
345
+
346
+
"@dnd-kit/core": ["@dnd-kit/core@6.3.1", "", { "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ=="],
347
+
348
+
"@dnd-kit/modifiers": ["@dnd-kit/modifiers@9.0.0", "", { "dependencies": { "@dnd-kit/utilities": "^3.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@dnd-kit/core": "^6.3.0", "react": ">=16.8.0" } }, "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw=="],
349
+
350
+
"@dnd-kit/sortable": ["@dnd-kit/sortable@10.0.0", "", { "dependencies": { "@dnd-kit/utilities": "^3.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@dnd-kit/core": "^6.3.0", "react": ">=16.8.0" } }, "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg=="],
351
+
352
+
"@dnd-kit/utilities": ["@dnd-kit/utilities@3.2.2", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg=="],
353
+
354
+
"@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="],
355
+
356
+
"@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="],
357
+
358
+
"@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="],
359
+
360
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.19.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA=="],
361
+
362
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.19.12", "", { "os": "android", "cpu": "arm" }, "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w=="],
363
+
364
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.19.12", "", { "os": "android", "cpu": "arm64" }, "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA=="],
365
+
366
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.19.12", "", { "os": "android", "cpu": "x64" }, "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew=="],
367
+
368
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.19.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g=="],
369
+
370
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.19.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A=="],
371
+
372
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.19.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA=="],
373
+
374
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.19.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg=="],
375
+
376
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.19.12", "", { "os": "linux", "cpu": "arm" }, "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w=="],
377
+
378
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.19.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA=="],
379
+
380
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.19.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA=="],
381
+
382
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA=="],
383
+
384
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w=="],
385
+
386
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.19.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg=="],
387
+
388
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.19.12", "", { "os": "linux", "cpu": "none" }, "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg=="],
389
+
390
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.19.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg=="],
391
+
392
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.19.12", "", { "os": "linux", "cpu": "x64" }, "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg=="],
393
+
394
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="],
395
+
396
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.19.12", "", { "os": "none", "cpu": "x64" }, "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA=="],
397
+
398
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="],
399
+
400
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.19.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw=="],
401
+
402
+
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="],
403
+
404
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.19.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA=="],
405
+
406
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.19.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A=="],
407
+
408
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.19.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ=="],
409
+
410
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.12", "", { "os": "win32", "cpu": "x64" }, "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA=="],
411
+
412
+
"@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="],
413
+
414
+
"@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="],
415
+
416
+
"@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="],
417
+
418
+
"@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="],
419
+
420
+
"@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="],
421
+
422
+
"@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="],
423
+
424
+
"@eslint/js": ["@eslint/js@9.39.1", "", {}, "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw=="],
425
+
426
+
"@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="],
427
+
428
+
"@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="],
429
+
430
+
"@floating-ui/core": ["@floating-ui/core@1.7.3", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w=="],
431
+
432
+
"@floating-ui/dom": ["@floating-ui/dom@1.7.4", "", { "dependencies": { "@floating-ui/core": "^1.7.3", "@floating-ui/utils": "^0.2.10" } }, "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA=="],
433
+
434
+
"@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.6", "", { "dependencies": { "@floating-ui/dom": "^1.7.4" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw=="],
435
+
436
+
"@floating-ui/utils": ["@floating-ui/utils@0.2.10", "", {}, "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ=="],
437
+
438
+
"@hookform/resolvers": ["@hookform/resolvers@3.10.0", "", { "peerDependencies": { "react-hook-form": "^7.0.0" } }, "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag=="],
439
+
440
+
"@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="],
441
+
442
+
"@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="],
443
+
444
+
"@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="],
445
+
446
+
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="],
447
+
448
+
"@inquirer/ansi": ["@inquirer/ansi@1.0.2", "", {}, "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ=="],
449
+
450
+
"@inquirer/checkbox": ["@inquirer/checkbox@4.3.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA=="],
451
+
452
+
"@inquirer/confirm": ["@inquirer/confirm@5.1.21", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ=="],
453
+
454
+
"@inquirer/core": ["@inquirer/core@10.3.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "wrap-ansi": "^6.2.0", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A=="],
455
+
456
+
"@inquirer/editor": ["@inquirer/editor@4.2.23", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/external-editor": "^1.0.3", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ=="],
457
+
458
+
"@inquirer/expand": ["@inquirer/expand@4.0.23", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew=="],
459
+
460
+
"@inquirer/external-editor": ["@inquirer/external-editor@1.0.3", "", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA=="],
461
+
462
+
"@inquirer/figures": ["@inquirer/figures@1.0.15", "", {}, "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g=="],
463
+
464
+
"@inquirer/input": ["@inquirer/input@4.3.1", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g=="],
465
+
466
+
"@inquirer/number": ["@inquirer/number@3.0.23", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg=="],
467
+
468
+
"@inquirer/password": ["@inquirer/password@4.0.23", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA=="],
469
+
470
+
"@inquirer/prompts": ["@inquirer/prompts@7.10.1", "", { "dependencies": { "@inquirer/checkbox": "^4.3.2", "@inquirer/confirm": "^5.1.21", "@inquirer/editor": "^4.2.23", "@inquirer/expand": "^4.0.23", "@inquirer/input": "^4.3.1", "@inquirer/number": "^3.0.23", "@inquirer/password": "^4.0.23", "@inquirer/rawlist": "^4.1.11", "@inquirer/search": "^3.2.2", "@inquirer/select": "^4.4.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg=="],
471
+
472
+
"@inquirer/rawlist": ["@inquirer/rawlist@4.1.11", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw=="],
473
+
474
+
"@inquirer/search": ["@inquirer/search@3.2.2", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA=="],
475
+
476
+
"@inquirer/select": ["@inquirer/select@4.4.2", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/figures": "^1.0.15", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w=="],
477
+
478
+
"@inquirer/type": ["@inquirer/type@3.0.10", "", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA=="],
479
+
480
+
"@ipld/dag-cbor": ["@ipld/dag-cbor@7.0.3", "", { "dependencies": { "cborg": "^1.6.0", "multiformats": "^9.5.4" } }, "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA=="],
481
+
482
+
"@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="],
483
+
484
+
"@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="],
485
+
486
+
"@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="],
487
+
488
+
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
489
+
490
+
"@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="],
491
+
492
+
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
493
+
494
+
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
495
+
496
+
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
497
+
498
+
"@libsql/client": ["@libsql/client@0.14.0", "", { "dependencies": { "@libsql/core": "^0.14.0", "@libsql/hrana-client": "^0.7.0", "js-base64": "^3.7.5", "libsql": "^0.4.4", "promise-limit": "^2.7.0" } }, "sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q=="],
499
+
500
+
"@libsql/core": ["@libsql/core@0.14.0", "", { "dependencies": { "js-base64": "^3.7.5" } }, "sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q=="],
501
+
502
+
"@libsql/darwin-arm64": ["@libsql/darwin-arm64@0.4.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-yOL742IfWUlUevnI5PdnIT4fryY3LYTdLm56bnY0wXBw7dhFcnjuA7jrH3oSVz2mjZTHujxoITgAE7V6Z+eAbg=="],
503
+
504
+
"@libsql/darwin-x64": ["@libsql/darwin-x64@0.4.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-ezc7V75+eoyyH07BO9tIyJdqXXcRfZMbKcLCeF8+qWK5nP8wWuMcfOVywecsXGRbT99zc5eNra4NEx6z5PkSsA=="],
505
+
506
+
"@libsql/hrana-client": ["@libsql/hrana-client@0.7.0", "", { "dependencies": { "@libsql/isomorphic-fetch": "^0.3.1", "@libsql/isomorphic-ws": "^0.1.5", "js-base64": "^3.7.5", "node-fetch": "^3.3.2" } }, "sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw=="],
507
+
508
+
"@libsql/isomorphic-fetch": ["@libsql/isomorphic-fetch@0.3.1", "", {}, "sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw=="],
509
+
510
+
"@libsql/isomorphic-ws": ["@libsql/isomorphic-ws@0.1.5", "", { "dependencies": { "@types/ws": "^8.5.4", "ws": "^8.13.0" } }, "sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg=="],
511
+
512
+
"@libsql/linux-arm-gnueabihf": ["@libsql/linux-arm-gnueabihf@0.5.22", "", { "os": "linux", "cpu": "arm" }, "sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA=="],
513
+
514
+
"@libsql/linux-arm-musleabihf": ["@libsql/linux-arm-musleabihf@0.5.22", "", { "os": "linux", "cpu": "arm" }, "sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg=="],
515
+
516
+
"@libsql/linux-arm64-gnu": ["@libsql/linux-arm64-gnu@0.4.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-WlX2VYB5diM4kFfNaYcyhw5y+UJAI3xcMkEUJZPtRDEIu85SsSFrQ+gvoKfcVh76B//ztSeEX2wl9yrjF7BBCA=="],
517
+
518
+
"@libsql/linux-arm64-musl": ["@libsql/linux-arm64-musl@0.4.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-6kK9xAArVRlTCpWeqnNMCoXW1pe7WITI378n4NpvU5EJ0Ok3aNTIC2nRPRjhro90QcnmLL1jPcrVwO4WD1U0xw=="],
519
+
520
+
"@libsql/linux-x64-gnu": ["@libsql/linux-x64-gnu@0.4.7", "", { "os": "linux", "cpu": "x64" }, "sha512-CMnNRCmlWQqqzlTw6NeaZXzLWI8bydaXDke63JTUCvu8R+fj/ENsLrVBtPDlxQ0wGsYdXGlrUCH8Qi9gJep0yQ=="],
521
+
522
+
"@libsql/linux-x64-musl": ["@libsql/linux-x64-musl@0.4.7", "", { "os": "linux", "cpu": "x64" }, "sha512-nI6tpS1t6WzGAt1Kx1n1HsvtBbZ+jHn0m7ogNNT6pQHZQj7AFFTIMeDQw/i/Nt5H38np1GVRNsFe99eSIMs9XA=="],
523
+
524
+
"@libsql/win32-x64-msvc": ["@libsql/win32-x64-msvc@0.4.7", "", { "os": "win32", "cpu": "x64" }, "sha512-7pJzOWzPm6oJUxml+PCDRzYQ4A1hTMHAciTAHfFK4fkbDZX33nWPVG7Y3vqdKtslcwAzwmrNDc6sXy2nwWnbiw=="],
525
+
526
+
"@mary-ext/event-iterator": ["@mary-ext/event-iterator@1.0.0", "", { "dependencies": { "yocto-queue": "^1.2.1" } }, "sha512-l6gCPsWJ8aRCe/s7/oCmero70kDHgIK5m4uJvYgwEYTqVxoBOIXbKr5tnkLqUHEg6mNduB4IWvms3h70Hp9ADQ=="],
527
+
528
+
"@mary-ext/simple-event-emitter": ["@mary-ext/simple-event-emitter@1.0.0", "", {}, "sha512-meA/zJZKIN1RVBNEYIbjufkUrW7/tRjHH60FjolpG1ixJKo76TB208qefQLNdOVDA7uIG0CGEDuhmMirtHKLAg=="],
529
+
530
+
"@neon-rs/load": ["@neon-rs/load@0.0.4", "", {}, "sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw=="],
531
+
532
+
"@noble/secp256k1": ["@noble/secp256k1@3.0.0", "", {}, "sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg=="],
533
+
534
+
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
535
+
536
+
"@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
537
+
538
+
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
539
+
540
+
"@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="],
541
+
542
+
"@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A=="],
543
+
544
+
"@opentelemetry/context-async-hooks": ["@opentelemetry/context-async-hooks@1.30.1", "", { "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA=="],
545
+
546
+
"@opentelemetry/core": ["@opentelemetry/core@1.30.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ=="],
547
+
548
+
"@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg=="],
549
+
550
+
"@opentelemetry/instrumentation-amqplib": ["@opentelemetry/instrumentation-amqplib@0.46.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ=="],
551
+
552
+
"@opentelemetry/instrumentation-connect": ["@opentelemetry/instrumentation-connect@0.43.0", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/connect": "3.4.36" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-Q57JGpH6T4dkYHo9tKXONgLtxzsh1ZEW5M9A/OwKrZFyEpLqWgjhcZ3hIuVvDlhb426iDF1f9FPToV/mi5rpeA=="],
553
+
554
+
"@opentelemetry/instrumentation-dataloader": ["@opentelemetry/instrumentation-dataloader@0.16.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-88+qCHZC02up8PwKHk0UQKLLqGGURzS3hFQBZC7PnGwReuoKjHXS1o29H58S+QkXJpkTr2GACbx8j6mUoGjNPA=="],
555
+
556
+
"@opentelemetry/instrumentation-express": ["@opentelemetry/instrumentation-express@0.47.0", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-XFWVx6k0XlU8lu6cBlCa29ONtVt6ADEjmxtyAyeF2+rifk8uBJbk1La0yIVfI0DoKURGbaEDTNelaXG9l/lNNQ=="],
557
+
558
+
"@opentelemetry/instrumentation-fastify": ["@opentelemetry/instrumentation-fastify@0.44.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-RoVeMGKcNttNfXMSl6W4fsYoCAYP1vi6ZAWIGhBY+o7R9Y0afA7f9JJL0j8LHbyb0P0QhSYk+6O56OwI2k4iRQ=="],
559
+
560
+
"@opentelemetry/instrumentation-fs": ["@opentelemetry/instrumentation-fs@0.19.0", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-JGwmHhBkRT2G/BYNV1aGI+bBjJu4fJUD/5/Jat0EWZa2ftrLV3YE8z84Fiij/wK32oMZ88eS8DI4ecLGZhpqsQ=="],
561
+
562
+
"@opentelemetry/instrumentation-generic-pool": ["@opentelemetry/instrumentation-generic-pool@0.43.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-at8GceTtNxD1NfFKGAuwtqM41ot/TpcLh+YsGe4dhf7gvv1HW/ZWdq6nfRtS6UjIvZJOokViqLPJ3GVtZItAnQ=="],
563
+
564
+
"@opentelemetry/instrumentation-graphql": ["@opentelemetry/instrumentation-graphql@0.47.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-Cc8SMf+nLqp0fi8oAnooNEfwZWFnzMiBHCGmDFYqmgjPylyLmi83b+NiTns/rKGwlErpW0AGPt0sMpkbNlzn8w=="],
565
+
566
+
"@opentelemetry/instrumentation-hapi": ["@opentelemetry/instrumentation-hapi@0.45.1", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-VH6mU3YqAKTePPfUPwfq4/xr049774qWtfTuJqVHoVspCLiT3bW+fCQ1toZxt6cxRPYASoYaBsMA3CWo8B8rcw=="],
567
+
568
+
"@opentelemetry/instrumentation-http": ["@opentelemetry/instrumentation-http@0.57.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/instrumentation": "0.57.1", "@opentelemetry/semantic-conventions": "1.28.0", "forwarded-parse": "2.1.2", "semver": "^7.5.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-ThLmzAQDs7b/tdKI3BV2+yawuF09jF111OFsovqT1Qj3D8vjwKBwhi/rDE5xethwn4tSXtZcJ9hBsVAlWFQZ7g=="],
569
+
570
+
"@opentelemetry/instrumentation-ioredis": ["@opentelemetry/instrumentation-ioredis@0.47.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-4HqP9IBC8e7pW9p90P3q4ox0XlbLGme65YTrA3UTLvqvo4Z6b0puqZQP203YFu8m9rE/luLfaG7/xrwwqMUpJw=="],
571
+
572
+
"@opentelemetry/instrumentation-kafkajs": ["@opentelemetry/instrumentation-kafkajs@0.7.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-LB+3xiNzc034zHfCtgs4ITWhq6Xvdo8bsq7amR058jZlf2aXXDrN9SV4si4z2ya9QX4tz6r4eZJwDkXOp14/AQ=="],
573
+
574
+
"@opentelemetry/instrumentation-knex": ["@opentelemetry/instrumentation-knex@0.44.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-SlT0+bLA0Lg3VthGje+bSZatlGHw/vwgQywx0R/5u9QC59FddTQSPJeWNw29M6f8ScORMeUOOTwihlQAn4GkJQ=="],
575
+
576
+
"@opentelemetry/instrumentation-koa": ["@opentelemetry/instrumentation-koa@0.47.0", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-HFdvqf2+w8sWOuwtEXayGzdZ2vWpCKEQv5F7+2DSA74Te/Cv4rvb2E5So5/lh+ok4/RAIPuvCbCb/SHQFzMmbw=="],
577
+
578
+
"@opentelemetry/instrumentation-lru-memoizer": ["@opentelemetry/instrumentation-lru-memoizer@0.44.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-Tn7emHAlvYDFik3vGU0mdwvWJDwtITtkJ+5eT2cUquct6nIs+H8M47sqMJkCpyPe5QIBJoTOHxmc6mj9lz6zDw=="],
579
+
580
+
"@opentelemetry/instrumentation-mongodb": ["@opentelemetry/instrumentation-mongodb@0.51.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-cMKASxCX4aFxesoj3WK8uoQ0YUrRvnfxaO72QWI2xLu5ZtgX/QvdGBlU3Ehdond5eb74c2s1cqRQUIptBnKz1g=="],
581
+
582
+
"@opentelemetry/instrumentation-mongoose": ["@opentelemetry/instrumentation-mongoose@0.46.0", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-mtVv6UeaaSaWTeZtLo4cx4P5/ING2obSqfWGItIFSunQBrYROfhuVe7wdIrFUs2RH1tn2YYpAJyMaRe/bnTTIQ=="],
583
+
584
+
"@opentelemetry/instrumentation-mysql": ["@opentelemetry/instrumentation-mysql@0.45.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/mysql": "2.15.26" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-tWWyymgwYcTwZ4t8/rLDfPYbOTF3oYB8SxnYMtIQ1zEf5uDm90Ku3i6U/vhaMyfHNlIHvDhvJh+qx5Nc4Z3Acg=="],
585
+
586
+
"@opentelemetry/instrumentation-mysql2": ["@opentelemetry/instrumentation-mysql2@0.45.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@opentelemetry/sql-common": "^0.40.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-qLslv/EPuLj0IXFvcE3b0EqhWI8LKmrgRPIa4gUd8DllbBpqJAvLNJSv3cC6vWwovpbSI3bagNO/3Q2SuXv2xA=="],
587
+
588
+
"@opentelemetry/instrumentation-nestjs-core": ["@opentelemetry/instrumentation-nestjs-core@0.44.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-t16pQ7A4WYu1yyQJZhRKIfUNvl5PAaF2pEteLvgJb/BWdd1oNuU1rOYt4S825kMy+0q4ngiX281Ss9qiwHfxFQ=="],
589
+
590
+
"@opentelemetry/instrumentation-pg": ["@opentelemetry/instrumentation-pg@0.50.0", "", { "dependencies": { "@opentelemetry/core": "^1.26.0", "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "1.27.0", "@opentelemetry/sql-common": "^0.40.1", "@types/pg": "8.6.1", "@types/pg-pool": "2.0.6" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-TtLxDdYZmBhFswm8UIsrDjh/HFBeDXd4BLmE8h2MxirNHewLJ0VS9UUddKKEverb5Sm2qFVjqRjcU+8Iw4FJ3w=="],
591
+
592
+
"@opentelemetry/instrumentation-redis-4": ["@opentelemetry/instrumentation-redis-4@0.46.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/redis-common": "^0.36.2", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-aTUWbzbFMFeRODn3720TZO0tsh/49T8H3h8vVnVKJ+yE36AeW38Uj/8zykQ/9nO8Vrtjr5yKuX3uMiG/W8FKNw=="],
593
+
594
+
"@opentelemetry/instrumentation-tedious": ["@opentelemetry/instrumentation-tedious@0.18.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.57.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@types/tedious": "^4.0.14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-9zhjDpUDOtD+coeADnYEJQ0IeLVCj7w/hqzIutdp5NqS1VqTAanaEfsEcSypyvYv5DX3YOsTUoF+nr2wDXPETA=="],
595
+
596
+
"@opentelemetry/instrumentation-undici": ["@opentelemetry/instrumentation-undici@0.10.0", "", { "dependencies": { "@opentelemetry/core": "^1.8.0", "@opentelemetry/instrumentation": "^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.7.0" } }, "sha512-vm+V255NGw9gaSsPD6CP0oGo8L55BffBc8KnxqsMuc6XiAD1L8SFNzsW0RHhxJFqy9CJaJh+YiJ5EHXuZ5rZBw=="],
597
+
598
+
"@opentelemetry/redis-common": ["@opentelemetry/redis-common@0.36.2", "", {}, "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g=="],
599
+
600
+
"@opentelemetry/resources": ["@opentelemetry/resources@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA=="],
601
+
602
+
"@opentelemetry/sdk-trace-base": ["@opentelemetry/sdk-trace-base@1.30.1", "", { "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg=="],
603
+
604
+
"@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.38.0", "", {}, "sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg=="],
605
+
606
+
"@opentelemetry/sql-common": ["@opentelemetry/sql-common@0.40.1", "", { "dependencies": { "@opentelemetry/core": "^1.1.0" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0" } }, "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg=="],
607
+
608
+
"@optique/core": ["@optique/core@0.6.2", "", {}, "sha512-HTxIHJ8xLOSZotiU6Zc5BCJv+SJ8DMYmuiQM+7tjF7RolJn/pdZNe7M78G3+DgXL9lIf82l8aGcilmgVYRQnGQ=="],
609
+
610
+
"@optique/run": ["@optique/run@0.6.2", "", { "dependencies": { "@optique/core": "0.6.2" } }, "sha512-ERksB5bHozwEUVlTPToIc8UjZZBOgLeBhFZYh2lgldUbNDt7LItzgcErsPq5au5i5IBmmyCti4+2A3x+MRI4Xw=="],
611
+
612
+
"@pinojs/redact": ["@pinojs/redact@0.4.0", "", {}, "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg=="],
613
+
614
+
"@prisma/instrumentation": ["@prisma/instrumentation@5.22.0", "", { "dependencies": { "@opentelemetry/api": "^1.8", "@opentelemetry/instrumentation": "^0.49 || ^0.50 || ^0.51 || ^0.52.0 || ^0.53.0", "@opentelemetry/sdk-trace-base": "^1.22" } }, "sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q=="],
615
+
616
+
"@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="],
617
+
618
+
"@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.1.7", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w=="],
619
+
620
+
"@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.1.11", "", { "dependencies": { "@radix-ui/react-context": "1.1.3", "@radix-ui/react-primitive": "2.1.4", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-is-hydrated": "0.1.0", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q=="],
621
+
622
+
"@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA=="],
623
+
624
+
"@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw=="],
625
+
626
+
"@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="],
627
+
628
+
"@radix-ui/react-context": ["@radix-ui/react-context@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw=="],
629
+
630
+
"@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="],
631
+
632
+
"@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw=="],
633
+
634
+
"@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg=="],
635
+
636
+
"@radix-ui/react-dropdown-menu": ["@radix-ui/react-dropdown-menu@2.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-menu": "2.1.16", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw=="],
637
+
638
+
"@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw=="],
639
+
640
+
"@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw=="],
641
+
642
+
"@radix-ui/react-icons": ["@radix-ui/react-icons@1.3.2", "", { "peerDependencies": { "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" } }, "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g=="],
643
+
644
+
"@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="],
645
+
646
+
"@radix-ui/react-label": ["@radix-ui/react-label@2.1.8", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A=="],
647
+
648
+
"@radix-ui/react-menu": ["@radix-ui/react-menu@2.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg=="],
649
+
650
+
"@radix-ui/react-popper": ["@radix-ui/react-popper@1.2.8", "", { "dependencies": { "@floating-ui/react-dom": "^2.0.0", "@radix-ui/react-arrow": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-rect": "1.1.1", "@radix-ui/react-use-size": "1.1.1", "@radix-ui/rect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw=="],
651
+
652
+
"@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ=="],
653
+
654
+
"@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.5", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ=="],
655
+
656
+
"@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="],
657
+
658
+
"@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA=="],
659
+
660
+
"@radix-ui/react-separator": ["@radix-ui/react-separator@1.1.8", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g=="],
661
+
662
+
"@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="],
663
+
664
+
"@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.2.8", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg=="],
665
+
666
+
"@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="],
667
+
668
+
"@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="],
669
+
670
+
"@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="],
671
+
672
+
"@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.1", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g=="],
673
+
674
+
"@radix-ui/react-use-is-hydrated": ["@radix-ui/react-use-is-hydrated@0.1.0", "", { "dependencies": { "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA=="],
675
+
676
+
"@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="],
677
+
678
+
"@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.1.1", "", { "dependencies": { "@radix-ui/rect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w=="],
679
+
680
+
"@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ=="],
681
+
682
+
"@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.2.3", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug=="],
683
+
684
+
"@radix-ui/rect": ["@radix-ui/rect@1.1.1", "", {}, "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw=="],
685
+
686
+
"@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.47", "", {}, "sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw=="],
687
+
688
+
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.3", "", { "os": "android", "cpu": "arm" }, "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w=="],
689
+
690
+
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.3", "", { "os": "android", "cpu": "arm64" }, "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w=="],
691
+
692
+
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA=="],
693
+
694
+
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ=="],
695
+
696
+
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w=="],
697
+
698
+
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q=="],
699
+
700
+
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw=="],
701
+
702
+
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg=="],
703
+
704
+
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w=="],
705
+
706
+
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A=="],
707
+
708
+
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g=="],
709
+
710
+
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw=="],
711
+
712
+
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g=="],
713
+
714
+
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A=="],
715
+
716
+
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg=="],
717
+
718
+
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w=="],
719
+
720
+
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q=="],
721
+
722
+
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw=="],
723
+
724
+
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw=="],
725
+
726
+
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA=="],
727
+
728
+
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg=="],
729
+
730
+
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ=="],
731
+
732
+
"@sentry/core": ["@sentry/core@8.55.0", "", {}, "sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA=="],
733
+
734
+
"@sentry/node": ["@sentry/node@8.55.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/instrumentation-amqplib": "^0.46.0", "@opentelemetry/instrumentation-connect": "0.43.0", "@opentelemetry/instrumentation-dataloader": "0.16.0", "@opentelemetry/instrumentation-express": "0.47.0", "@opentelemetry/instrumentation-fastify": "0.44.1", "@opentelemetry/instrumentation-fs": "0.19.0", "@opentelemetry/instrumentation-generic-pool": "0.43.0", "@opentelemetry/instrumentation-graphql": "0.47.0", "@opentelemetry/instrumentation-hapi": "0.45.1", "@opentelemetry/instrumentation-http": "0.57.1", "@opentelemetry/instrumentation-ioredis": "0.47.0", "@opentelemetry/instrumentation-kafkajs": "0.7.0", "@opentelemetry/instrumentation-knex": "0.44.0", "@opentelemetry/instrumentation-koa": "0.47.0", "@opentelemetry/instrumentation-lru-memoizer": "0.44.0", "@opentelemetry/instrumentation-mongodb": "0.51.0", "@opentelemetry/instrumentation-mongoose": "0.46.0", "@opentelemetry/instrumentation-mysql": "0.45.0", "@opentelemetry/instrumentation-mysql2": "0.45.0", "@opentelemetry/instrumentation-nestjs-core": "0.44.0", "@opentelemetry/instrumentation-pg": "0.50.0", "@opentelemetry/instrumentation-redis-4": "0.46.0", "@opentelemetry/instrumentation-tedious": "0.18.0", "@opentelemetry/instrumentation-undici": "0.10.0", "@opentelemetry/resources": "^1.30.1", "@opentelemetry/sdk-trace-base": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.28.0", "@prisma/instrumentation": "5.22.0", "@sentry/core": "8.55.0", "@sentry/opentelemetry": "8.55.0", "import-in-the-middle": "^1.11.2" } }, "sha512-h10LJLDTRAzYgay60Oy7moMookqqSZSviCWkkmHZyaDn+4WURnPp5SKhhfrzPRQcXKrweiOwDSHBgn1tweDssg=="],
735
+
736
+
"@sentry/opentelemetry": ["@sentry/opentelemetry@8.55.0", "", { "dependencies": { "@sentry/core": "8.55.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/sdk-trace-base": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.28.0" } }, "sha512-UvatdmSr3Xf+4PLBzJNLZ2JjG1yAPWGe/VrJlJAqyTJ2gKeTzgXJJw8rp4pbvNZO8NaTGEYhhO+scLUj0UtLAQ=="],
737
+
738
+
"@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@4.0.0", "", {}, "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="],
739
+
740
+
"@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="],
741
+
742
+
"@swc/core": ["@swc/core@1.15.3", "", { "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.25" }, "optionalDependencies": { "@swc/core-darwin-arm64": "1.15.3", "@swc/core-darwin-x64": "1.15.3", "@swc/core-linux-arm-gnueabihf": "1.15.3", "@swc/core-linux-arm64-gnu": "1.15.3", "@swc/core-linux-arm64-musl": "1.15.3", "@swc/core-linux-x64-gnu": "1.15.3", "@swc/core-linux-x64-musl": "1.15.3", "@swc/core-win32-arm64-msvc": "1.15.3", "@swc/core-win32-ia32-msvc": "1.15.3", "@swc/core-win32-x64-msvc": "1.15.3" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" }, "optionalPeers": ["@swc/helpers"] }, "sha512-Qd8eBPkUFL4eAONgGjycZXj1jFCBW8Fd+xF0PzdTlBCWQIV1xnUT7B93wUANtW3KGjl3TRcOyxwSx/u/jyKw/Q=="],
743
+
744
+
"@swc/core-darwin-arm64": ["@swc/core-darwin-arm64@1.15.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-AXfeQn0CvcQ4cndlIshETx6jrAM45oeUrK8YeEY6oUZU/qzz0Id0CyvlEywxkWVC81Ajpd8TQQ1fW5yx6zQWkQ=="],
745
+
746
+
"@swc/core-darwin-x64": ["@swc/core-darwin-x64@1.15.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-p68OeCz1ui+MZYG4wmfJGvcsAcFYb6Sl25H9TxWl+GkBgmNimIiRdnypK9nBGlqMZAcxngNPtnG3kEMNnvoJ2A=="],
747
+
748
+
"@swc/core-linux-arm-gnueabihf": ["@swc/core-linux-arm-gnueabihf@1.15.3", "", { "os": "linux", "cpu": "arm" }, "sha512-Nuj5iF4JteFgwrai97mUX+xUOl+rQRHqTvnvHMATL/l9xE6/TJfPBpd3hk/PVpClMXG3Uvk1MxUFOEzM1JrMYg=="],
749
+
750
+
"@swc/core-linux-arm64-gnu": ["@swc/core-linux-arm64-gnu@1.15.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-2Nc/s8jE6mW2EjXWxO/lyQuLKShcmTrym2LRf5Ayp3ICEMX6HwFqB1EzDhwoMa2DcUgmnZIalesq2lG3krrUNw=="],
751
+
752
+
"@swc/core-linux-arm64-musl": ["@swc/core-linux-arm64-musl@1.15.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-j4SJniZ/qaZ5g8op+p1G9K1z22s/EYGg1UXIb3+Cg4nsxEpF5uSIGEE4mHUfA70L0BR9wKT2QF/zv3vkhfpX4g=="],
753
+
754
+
"@swc/core-linux-x64-gnu": ["@swc/core-linux-x64-gnu@1.15.3", "", { "os": "linux", "cpu": "x64" }, "sha512-aKttAZnz8YB1VJwPQZtyU8Uk0BfMP63iDMkvjhJzRZVgySmqt/apWSdnoIcZlUoGheBrcqbMC17GGUmur7OT5A=="],
755
+
756
+
"@swc/core-linux-x64-musl": ["@swc/core-linux-x64-musl@1.15.3", "", { "os": "linux", "cpu": "x64" }, "sha512-oe8FctPu1gnUsdtGJRO2rvOUIkkIIaHqsO9xxN0bTR7dFTlPTGi2Fhk1tnvXeyAvCPxLIcwD8phzKg6wLv9yug=="],
757
+
758
+
"@swc/core-win32-arm64-msvc": ["@swc/core-win32-arm64-msvc@1.15.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-L9AjzP2ZQ/Xh58e0lTRMLvEDrcJpR7GwZqAtIeNLcTK7JVE+QineSyHp0kLkO1rttCHyCy0U74kDTj0dRz6raA=="],
759
+
760
+
"@swc/core-win32-ia32-msvc": ["@swc/core-win32-ia32-msvc@1.15.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-B8UtogMzErUPDWUoKONSVBdsgKYd58rRyv2sHJWKOIMCHfZ22FVXICR4O/VwIYtlnZ7ahERcjayBHDlBZpR0aw=="],
761
+
762
+
"@swc/core-win32-x64-msvc": ["@swc/core-win32-x64-msvc@1.15.3", "", { "os": "win32", "cpu": "x64" }, "sha512-SpZKMR9QBTecHeqpzJdYEfgw30Oo8b/Xl6rjSzBt1g0ZsXyy60KLXrp6IagQyfTYqNYE/caDvwtF2FPn7pomog=="],
763
+
764
+
"@swc/counter": ["@swc/counter@0.1.3", "", {}, "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="],
765
+
766
+
"@swc/types": ["@swc/types@0.1.25", "", { "dependencies": { "@swc/counter": "^0.1.3" } }, "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g=="],
767
+
768
+
"@tanstack/eslint-plugin-query": ["@tanstack/eslint-plugin-query@5.91.2", "", { "dependencies": { "@typescript-eslint/utils": "^8.44.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0" } }, "sha512-UPeWKl/Acu1IuuHJlsN+eITUHqAaa9/04geHHPedY8siVarSaWprY0SVMKrkpKfk5ehRT7+/MZ5QwWuEtkWrFw=="],
769
+
770
+
"@tanstack/history": ["@tanstack/history@1.139.0", "", {}, "sha512-l6wcxwDBeh/7Dhles23U1O8lp9kNJmAb2yNjekR6olZwCRNAVA8TCXlVCrueELyFlYZqvQkh0ofxnzG62A1Kkg=="],
771
+
772
+
"@tanstack/query-core": ["@tanstack/query-core@5.90.10", "", {}, "sha512-EhZVFu9rl7GfRNuJLJ3Y7wtbTnENsvzp+YpcAV7kCYiXni1v8qZh++lpw4ch4rrwC0u/EZRnBHIehzCGzwXDSQ=="],
773
+
774
+
"@tanstack/query-devtools": ["@tanstack/query-devtools@5.91.0", "", {}, "sha512-uNWkqWTiIKCv8Iaahb7bftmDaZVkBetB+l+OQhQeCEZAedyqxw2eyaRUc8sAQ2LzD843tVdYL6bzOtRWJHJSbQ=="],
775
+
776
+
"@tanstack/react-query": ["@tanstack/react-query@5.90.10", "", { "dependencies": { "@tanstack/query-core": "5.90.10" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-BKLss9Y8PQ9IUjPYQiv3/Zmlx92uxffUOX8ZZNoQlCIZBJPT5M+GOMQj7xislvVQ6l1BstBjcX0XB/aHfFYVNw=="],
777
+
778
+
"@tanstack/react-query-devtools": ["@tanstack/react-query-devtools@5.91.0", "", { "dependencies": { "@tanstack/query-devtools": "5.91.0" }, "peerDependencies": { "@tanstack/react-query": "^5.90.10", "react": "^18 || ^19" } }, "sha512-s7g8Zn8HN05HNe22n/KdNm8wXaRbkcsVkqpkdYIQuCfjVmEUoTQqtJsN2iZtgd9CU36xNS38trWIofxzyW5vbQ=="],
779
+
780
+
"@tanstack/react-router": ["@tanstack/react-router@1.139.3", "", { "dependencies": { "@tanstack/history": "1.139.0", "@tanstack/react-store": "^0.8.0", "@tanstack/router-core": "1.139.3", "isbot": "^5.1.22", "tiny-invariant": "^1.3.3", "tiny-warning": "^1.0.3" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-lhqK0DnbA7PgHOnmhzOoWVzx8qd8oEpR4cOUbxAjwb3+ExFQWrEvRf9+ZdSxs49ZrtZL2S2UltxBv3vBV4Si5g=="],
781
+
782
+
"@tanstack/react-router-devtools": ["@tanstack/react-router-devtools@1.139.3", "", { "dependencies": { "@tanstack/router-devtools-core": "1.139.3", "vite": "^7.1.7" }, "peerDependencies": { "@tanstack/react-router": "^1.139.3", "@tanstack/router-core": "^1.139.3", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" }, "optionalPeers": ["@tanstack/router-core"] }, "sha512-taH/Zklh3TOEaGXo3Nmck67J6Cgj7LDY9E7pIwncocWXt/6s91kYKHsiSkCWfAbZ/bLIrj4YWu21ObnvU0PlHw=="],
783
+
784
+
"@tanstack/react-store": ["@tanstack/react-store@0.8.0", "", { "dependencies": { "@tanstack/store": "0.8.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-1vG9beLIuB7q69skxK9r5xiLN3ztzIPfSQSs0GfeqWGO2tGIyInZx0x1COhpx97RKaONSoAb8C3dxacWksm1ow=="],
785
+
786
+
"@tanstack/router-core": ["@tanstack/router-core@1.139.3", "", { "dependencies": { "@tanstack/history": "1.139.0", "@tanstack/store": "^0.8.0", "cookie-es": "^2.0.0", "seroval": "^1.4.0", "seroval-plugins": "^1.4.0", "tiny-invariant": "^1.3.3", "tiny-warning": "^1.0.3" } }, "sha512-j3v1e739jmozBdtnmA45xHQHjCC2aKqBtfkMT3t2ZPijVrueaVP6qNRIAWmDK4ZSqd67TF5wP8vyqeTShJsEQQ=="],
787
+
788
+
"@tanstack/router-devtools": ["@tanstack/router-devtools@1.139.3", "", { "dependencies": { "@tanstack/react-router-devtools": "1.139.3", "clsx": "^2.1.1", "goober": "^2.1.16", "vite": "^7.1.7" }, "peerDependencies": { "@tanstack/react-router": "^1.139.3", "csstype": "^3.0.10", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" }, "optionalPeers": ["csstype"] }, "sha512-cJ8mQNMm/4nMFDwQxSMLWP4pk9kAXLl/SkRQqOwEbhzO35enSo7r2UdcM0uTwNEEKGjdjmNrNanFzDIZJnFHCg=="],
789
+
790
+
"@tanstack/router-devtools-core": ["@tanstack/router-devtools-core@1.139.3", "", { "dependencies": { "clsx": "^2.1.1", "goober": "^2.1.16", "tiny-invariant": "^1.3.3", "vite": "^7.1.7" }, "peerDependencies": { "@tanstack/router-core": "^1.139.3", "csstype": "^3.0.10", "solid-js": ">=1.9.5" }, "optionalPeers": ["csstype"] }, "sha512-dqjL9QroVORlLC283uwwMB7CLMWAfn9rgKwwcXdaSQlPcuSVScFzyFI4Iz7l6A4jGC0ALtNPQoHJ52+mvTzY5Q=="],
791
+
792
+
"@tanstack/router-generator": ["@tanstack/router-generator@1.139.3", "", { "dependencies": { "@tanstack/router-core": "1.139.3", "@tanstack/router-utils": "1.139.0", "@tanstack/virtual-file-routes": "1.139.0", "prettier": "^3.5.0", "recast": "^0.23.11", "source-map": "^0.7.4", "tsx": "^4.19.2", "zod": "^3.24.2" } }, "sha512-zq/ZC+1rx7pGNqYOthHSm0jxioNqm7JszYDcZPAZVhHT2Qhen02b7PzW8M7Qx4FU+ldXgnhpenDN5/jqYYClfQ=="],
793
+
794
+
"@tanstack/router-plugin": ["@tanstack/router-plugin@1.139.3", "", { "dependencies": { "@babel/core": "^7.27.7", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/template": "^7.27.2", "@babel/traverse": "^7.27.7", "@babel/types": "^7.27.7", "@tanstack/router-core": "1.139.3", "@tanstack/router-generator": "1.139.3", "@tanstack/router-utils": "1.139.0", "@tanstack/virtual-file-routes": "1.139.0", "babel-dead-code-elimination": "^1.0.10", "chokidar": "^3.6.0", "unplugin": "^2.1.2", "zod": "^3.24.2" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2", "@tanstack/react-router": "^1.139.3", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0", "vite-plugin-solid": "^2.11.10", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"] }, "sha512-ymv5mr2IULgrZblzYeYUVZXzz3fzW1OzoDZh5cs5gEetRcEpXQ6XL8KG4pCkIQ04AJcrtXEWt1yZxi01XjZWxw=="],
795
+
796
+
"@tanstack/router-utils": ["@tanstack/router-utils@1.139.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/parser": "^7.27.5", "@babel/preset-typescript": "^7.27.1", "ansis": "^4.1.0", "diff": "^8.0.2", "pathe": "^2.0.3", "tinyglobby": "^0.2.15" } }, "sha512-jT7D6NimWqoFSkid4vCno8gvTyfL1+NHpgm3es0B2UNhKKRV3LngOGilm1m6v8Qvk/gy6Fh/tvB+s+hBl6GhOg=="],
797
+
798
+
"@tanstack/store": ["@tanstack/store@0.8.0", "", {}, "sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ=="],
799
+
800
+
"@tanstack/virtual-file-routes": ["@tanstack/virtual-file-routes@1.139.0", "", {}, "sha512-9PImF1d1tovTUIpjFVa0W7Fwj/MHif7BaaczgJJfbv3sDt1Gh+oW9W9uCw9M3ndEJynnp5ZD/TTs0RGubH5ssg=="],
801
+
802
+
"@typelex/emitter": ["@typelex/emitter@0.4.0", "", { "dependencies": { "@typespec/compiler": "^1.4.0" } }, "sha512-BaKny+8TA0yX5jZibkAodHHKLJ6l6xVe5ut7KeoUyTD63lSSuB9OXe8tWXrs2DbeR/hialCimHFZQ3xANleMow=="],
803
+
804
+
"@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="],
805
+
806
+
"@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="],
807
+
808
+
"@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="],
809
+
810
+
"@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="],
811
+
812
+
"@types/bun": ["@types/bun@1.3.3", "", { "dependencies": { "bun-types": "1.3.3" } }, "sha512-ogrKbJ2X5N0kWLLFKeytG0eHDleBYtngtlbu9cyBKFtNL3cnpDZkNdQj8flVf6WTZUX5ulI9AY1oa7ljhSrp+g=="],
813
+
814
+
"@types/connect": ["@types/connect@3.4.36", "", { "dependencies": { "@types/node": "*" } }, "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w=="],
815
+
816
+
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
817
+
818
+
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
819
+
820
+
"@types/mysql": ["@types/mysql@2.15.26", "", { "dependencies": { "@types/node": "*" } }, "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ=="],
821
+
822
+
"@types/node": ["@types/node@22.19.1", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ=="],
823
+
824
+
"@types/pg": ["@types/pg@8.15.6", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ=="],
825
+
826
+
"@types/pg-pool": ["@types/pg-pool@2.0.6", "", { "dependencies": { "@types/pg": "*" } }, "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ=="],
827
+
828
+
"@types/react": ["@types/react@19.2.7", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg=="],
829
+
830
+
"@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="],
831
+
832
+
"@types/shimmer": ["@types/shimmer@1.2.0", "", {}, "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg=="],
833
+
834
+
"@types/tedious": ["@types/tedious@4.0.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw=="],
835
+
836
+
"@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="],
837
+
838
+
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.48.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/type-utils": "8.48.0", "@typescript-eslint/utils": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.48.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ=="],
839
+
840
+
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.48.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/types": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ=="],
841
+
842
+
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.48.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.48.0", "@typescript-eslint/types": "^8.48.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw=="],
843
+
844
+
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.48.0", "", { "dependencies": { "@typescript-eslint/types": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0" } }, "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ=="],
845
+
846
+
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.48.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w=="],
847
+
848
+
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.48.0", "", { "dependencies": { "@typescript-eslint/types": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0", "@typescript-eslint/utils": "8.48.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw=="],
849
+
850
+
"@typescript-eslint/types": ["@typescript-eslint/types@8.48.0", "", {}, "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA=="],
851
+
852
+
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.48.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.48.0", "@typescript-eslint/tsconfig-utils": "8.48.0", "@typescript-eslint/types": "8.48.0", "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ=="],
853
+
854
+
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.48.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/types": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ=="],
855
+
856
+
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.48.0", "", { "dependencies": { "@typescript-eslint/types": "8.48.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg=="],
857
+
858
+
"@typespec/compiler": ["@typespec/compiler@1.6.0", "", { "dependencies": { "@babel/code-frame": "~7.27.1", "@inquirer/prompts": "^7.4.0", "ajv": "~8.17.1", "change-case": "~5.4.4", "env-paths": "^3.0.0", "globby": "~15.0.0", "is-unicode-supported": "^2.1.0", "mustache": "~4.2.0", "picocolors": "~1.1.1", "prettier": "~3.6.2", "semver": "^7.7.1", "tar": "^7.5.2", "temporal-polyfill": "^0.3.0", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.12", "yaml": "~2.8.0", "yargs": "~18.0.0" }, "bin": { "tsp": "cmd/tsp.js", "tsp-server": "cmd/tsp-server.js" } }, "sha512-yxyV+ch8tnqiuU2gClv/mQEESoFwpkjo6177UkYfV0nVA9PzTg4zVVc7+WIMZk04wiLRRT3H1uc11FB1cwLY3g=="],
859
+
860
+
"@vitejs/plugin-react": ["@vitejs/plugin-react@5.1.1", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.47", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-WQfkSw0QbQ5aJ2CHYw23ZGkqnRwqKHD/KYsMeTkZzPT4Jcf0DcBxBtwMJxnu6E7oxw5+JC6ZAiePgh28uJ1HBA=="],
861
+
862
+
"@vitejs/plugin-react-swc": ["@vitejs/plugin-react-swc@3.11.0", "", { "dependencies": { "@rolldown/pluginutils": "1.0.0-beta.27", "@swc/core": "^1.12.11" }, "peerDependencies": { "vite": "^4 || ^5 || ^6 || ^7" } }, "sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w=="],
863
+
864
+
"abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="],
865
+
866
+
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
867
+
868
+
"acorn-import-attributes": ["acorn-import-attributes@1.9.5", "", { "peerDependencies": { "acorn": "^8" } }, "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ=="],
869
+
870
+
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
871
+
872
+
"ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="],
873
+
874
+
"ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
875
+
876
+
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
877
+
878
+
"ansis": ["ansis@4.2.0", "", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="],
879
+
880
+
"any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="],
881
+
882
+
"anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
883
+
884
+
"arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="],
885
+
886
+
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
887
+
888
+
"aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="],
889
+
890
+
"ast-types": ["ast-types@0.16.1", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg=="],
891
+
892
+
"asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
893
+
894
+
"atomic-sleep": ["atomic-sleep@1.0.0", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="],
895
+
896
+
"autoprefixer": ["autoprefixer@10.4.22", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-lite": "^1.0.30001754", "fraction.js": "^5.3.4", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg=="],
897
+
898
+
"axios": ["axios@1.13.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA=="],
899
+
900
+
"babel-dead-code-elimination": ["babel-dead-code-elimination@1.0.10", "", { "dependencies": { "@babel/core": "^7.23.7", "@babel/parser": "^7.23.6", "@babel/traverse": "^7.23.7", "@babel/types": "^7.23.6" } }, "sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA=="],
901
+
902
+
"babel-plugin-react-compiler": ["babel-plugin-react-compiler@1.0.0", "", { "dependencies": { "@babel/types": "^7.26.0" } }, "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw=="],
903
+
904
+
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
905
+
906
+
"base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
907
+
908
+
"baseline-browser-mapping": ["baseline-browser-mapping@2.8.31", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw=="],
909
+
910
+
"binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
911
+
912
+
"boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="],
913
+
914
+
"brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="],
915
+
916
+
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
917
+
918
+
"browserslist": ["browserslist@4.28.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", "electron-to-chromium": "^1.5.249", "node-releases": "^2.0.27", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ=="],
919
+
920
+
"buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="],
921
+
922
+
"buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="],
923
+
924
+
"bufferutil": ["bufferutil@4.0.9", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw=="],
925
+
926
+
"bun-types": ["bun-types@1.3.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-z3Xwlg7j2l9JY27x5Qn3Wlyos8YAp0kKRlrePAOjgjMGS5IG6E7Jnlx736vH9UVI4wUICwwhC9anYL++XeOgTQ=="],
927
+
928
+
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
929
+
930
+
"callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
931
+
932
+
"camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="],
933
+
934
+
"caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="],
935
+
936
+
"caniuse-lite": ["caniuse-lite@1.0.30001757", "", {}, "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ=="],
937
+
938
+
"cbor-extract": ["cbor-extract@2.2.0", "", { "dependencies": { "node-gyp-build-optional-packages": "5.1.1" }, "optionalDependencies": { "@cbor-extract/cbor-extract-darwin-arm64": "2.2.0", "@cbor-extract/cbor-extract-darwin-x64": "2.2.0", "@cbor-extract/cbor-extract-linux-arm": "2.2.0", "@cbor-extract/cbor-extract-linux-arm64": "2.2.0", "@cbor-extract/cbor-extract-linux-x64": "2.2.0", "@cbor-extract/cbor-extract-win32-x64": "2.2.0" }, "bin": { "download-cbor-prebuilds": "bin/download-prebuilds.js" } }, "sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA=="],
939
+
940
+
"cbor-x": ["cbor-x@1.6.0", "", { "optionalDependencies": { "cbor-extract": "^2.2.0" } }, "sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg=="],
941
+
942
+
"cborg": ["cborg@1.10.2", "", { "bin": { "cborg": "cli.js" } }, "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug=="],
943
+
944
+
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
945
+
946
+
"change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="],
947
+
948
+
"chardet": ["chardet@2.1.1", "", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="],
949
+
950
+
"chokidar": ["chokidar@3.6.0", "", { "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" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
951
+
952
+
"chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="],
953
+
954
+
"cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="],
955
+
956
+
"class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="],
957
+
958
+
"cli-width": ["cli-width@4.1.0", "", {}, "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="],
959
+
960
+
"cliui": ["cliui@9.0.1", "", { "dependencies": { "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" } }, "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w=="],
961
+
962
+
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
963
+
964
+
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
965
+
966
+
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
967
+
968
+
"colord": ["colord@2.9.3", "", {}, "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="],
969
+
970
+
"colorette": ["colorette@2.0.20", "", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="],
971
+
972
+
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
973
+
974
+
"commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="],
975
+
976
+
"concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
977
+
978
+
"convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="],
979
+
980
+
"cookie-es": ["cookie-es@2.0.0", "", {}, "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg=="],
981
+
982
+
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
983
+
984
+
"css-declaration-sorter": ["css-declaration-sorter@7.3.0", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ=="],
985
+
986
+
"css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="],
987
+
988
+
"css-tree": ["css-tree@3.1.0", "", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="],
989
+
990
+
"css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="],
991
+
992
+
"cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
993
+
994
+
"cssnano": ["cssnano@7.1.2", "", { "dependencies": { "cssnano-preset-default": "^7.0.10", "lilconfig": "^3.1.3" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA=="],
995
+
996
+
"cssnano-preset-default": ["cssnano-preset-default@7.0.10", "", { "dependencies": { "browserslist": "^4.27.0", "css-declaration-sorter": "^7.2.0", "cssnano-utils": "^5.0.1", "postcss-calc": "^10.1.1", "postcss-colormin": "^7.0.5", "postcss-convert-values": "^7.0.8", "postcss-discard-comments": "^7.0.5", "postcss-discard-duplicates": "^7.0.2", "postcss-discard-empty": "^7.0.1", "postcss-discard-overridden": "^7.0.1", "postcss-merge-longhand": "^7.0.5", "postcss-merge-rules": "^7.0.7", "postcss-minify-font-values": "^7.0.1", "postcss-minify-gradients": "^7.0.1", "postcss-minify-params": "^7.0.5", "postcss-minify-selectors": "^7.0.5", "postcss-normalize-charset": "^7.0.1", "postcss-normalize-display-values": "^7.0.1", "postcss-normalize-positions": "^7.0.1", "postcss-normalize-repeat-style": "^7.0.1", "postcss-normalize-string": "^7.0.1", "postcss-normalize-timing-functions": "^7.0.1", "postcss-normalize-unicode": "^7.0.5", "postcss-normalize-url": "^7.0.1", "postcss-normalize-whitespace": "^7.0.1", "postcss-ordered-values": "^7.0.2", "postcss-reduce-initial": "^7.0.5", "postcss-reduce-transforms": "^7.0.1", "postcss-svgo": "^7.1.0", "postcss-unique-selectors": "^7.0.4" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA=="],
997
+
998
+
"cssnano-utils": ["cssnano-utils@5.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg=="],
999
+
1000
+
"csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="],
1001
+
1002
+
"csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="],
1003
+
1004
+
"data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="],
1005
+
1006
+
"dateformat": ["dateformat@4.6.3", "", {}, "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA=="],
1007
+
1008
+
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
1009
+
1010
+
"deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
1011
+
1012
+
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
1013
+
1014
+
"detect-libc": ["detect-libc@2.0.2", "", {}, "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="],
1015
+
1016
+
"detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="],
1017
+
1018
+
"didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="],
1019
+
1020
+
"diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="],
1021
+
1022
+
"dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="],
1023
+
1024
+
"dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="],
1025
+
1026
+
"domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],
1027
+
1028
+
"domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="],
1029
+
1030
+
"domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="],
1031
+
1032
+
"drizzle-kit": ["drizzle-kit@0.29.1", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.19.7", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-OvHL8RVyYiPR3LLRE3SHdcON8xGXl+qMfR9uTTnFWBPIqVk/3NWYZPb7nfpM1Bhix3H+BsxqPyyagG7YZ+Z63A=="],
1033
+
1034
+
"drizzle-orm": ["drizzle-orm@0.44.7", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-quIpnYznjU9lHshEOAYLoZ9s3jweleHlZIAWR/jX9gAWNg/JhQ1wj0KGRf7/Zm+obRrYd9GjPVJg790QY9N5AQ=="],
1035
+
1036
+
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
1037
+
1038
+
"electron-to-chromium": ["electron-to-chromium@1.5.259", "", {}, "sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ=="],
1039
+
1040
+
"emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="],
1041
+
1042
+
"end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
1043
+
1044
+
"entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
1045
+
1046
+
"env-paths": ["env-paths@3.0.0", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="],
1047
+
1048
+
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
1049
+
1050
+
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
1051
+
1052
+
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
1053
+
1054
+
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
1055
+
1056
+
"esbuild": ["esbuild@0.19.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.12", "@esbuild/android-arm": "0.19.12", "@esbuild/android-arm64": "0.19.12", "@esbuild/android-x64": "0.19.12", "@esbuild/darwin-arm64": "0.19.12", "@esbuild/darwin-x64": "0.19.12", "@esbuild/freebsd-arm64": "0.19.12", "@esbuild/freebsd-x64": "0.19.12", "@esbuild/linux-arm": "0.19.12", "@esbuild/linux-arm64": "0.19.12", "@esbuild/linux-ia32": "0.19.12", "@esbuild/linux-loong64": "0.19.12", "@esbuild/linux-mips64el": "0.19.12", "@esbuild/linux-ppc64": "0.19.12", "@esbuild/linux-riscv64": "0.19.12", "@esbuild/linux-s390x": "0.19.12", "@esbuild/linux-x64": "0.19.12", "@esbuild/netbsd-x64": "0.19.12", "@esbuild/openbsd-x64": "0.19.12", "@esbuild/sunos-x64": "0.19.12", "@esbuild/win32-arm64": "0.19.12", "@esbuild/win32-ia32": "0.19.12", "@esbuild/win32-x64": "0.19.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg=="],
1057
+
1058
+
"esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="],
1059
+
1060
+
"escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
1061
+
1062
+
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
1063
+
1064
+
"eslint": ["eslint@9.39.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.1", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g=="],
1065
+
1066
+
"eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.2.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg=="],
1067
+
1068
+
"eslint-plugin-react-refresh": ["eslint-plugin-react-refresh@0.4.24", "", { "peerDependencies": { "eslint": ">=8.40" } }, "sha512-nLHIW7TEq3aLrEYWpVaJ1dRgFR+wLDPN8e8FpYAql/bMV2oBEfC37K0gLEGgv9fy66juNShSMV8OkTqzltcG/w=="],
1069
+
1070
+
"eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="],
1071
+
1072
+
"eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="],
1073
+
1074
+
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
1075
+
1076
+
"espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="],
1077
+
1078
+
"esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="],
1079
+
1080
+
"esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="],
1081
+
1082
+
"esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="],
1083
+
1084
+
"estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="],
1085
+
1086
+
"esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="],
1087
+
1088
+
"event-target-polyfill": ["event-target-polyfill@0.0.4", "", {}, "sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ=="],
1089
+
1090
+
"event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="],
1091
+
1092
+
"events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="],
1093
+
1094
+
"fast-copy": ["fast-copy@3.0.2", "", {}, "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ=="],
1095
+
1096
+
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
1097
+
1098
+
"fast-glob": ["fast-glob@3.3.3", "", { "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" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
1099
+
1100
+
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
1101
+
1102
+
"fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="],
1103
+
1104
+
"fast-redact": ["fast-redact@3.5.0", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="],
1105
+
1106
+
"fast-safe-stringify": ["fast-safe-stringify@2.1.1", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="],
1107
+
1108
+
"fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="],
1109
+
1110
+
"fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="],
1111
+
1112
+
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
1113
+
1114
+
"fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="],
1115
+
1116
+
"file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="],
1117
+
1118
+
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
1119
+
1120
+
"find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="],
1121
+
1122
+
"flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="],
1123
+
1124
+
"flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="],
1125
+
1126
+
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
1127
+
1128
+
"form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="],
1129
+
1130
+
"formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="],
1131
+
1132
+
"forwarded-parse": ["forwarded-parse@2.1.2", "", {}, "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw=="],
1133
+
1134
+
"fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="],
1135
+
1136
+
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
1137
+
1138
+
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
1139
+
1140
+
"gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="],
1141
+
1142
+
"get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
1143
+
1144
+
"get-east-asian-width": ["get-east-asian-width@1.4.0", "", {}, "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q=="],
1145
+
1146
+
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
1147
+
1148
+
"get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="],
1149
+
1150
+
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
1151
+
1152
+
"get-tsconfig": ["get-tsconfig@4.13.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="],
1153
+
1154
+
"glob": ["glob@13.0.0", "", { "dependencies": { "minimatch": "^10.1.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" } }, "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA=="],
1155
+
1156
+
"glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
1157
+
1158
+
"globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="],
1159
+
1160
+
"globby": ["globby@15.0.0", "", { "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "fast-glob": "^3.3.3", "ignore": "^7.0.5", "path-type": "^6.0.0", "slash": "^5.1.0", "unicorn-magic": "^0.3.0" } }, "sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw=="],
1161
+
1162
+
"goober": ["goober@2.1.18", "", { "peerDependencies": { "csstype": "^3.0.10" } }, "sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw=="],
1163
+
1164
+
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
1165
+
1166
+
"graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="],
1167
+
1168
+
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
1169
+
1170
+
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
1171
+
1172
+
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
1173
+
1174
+
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
1175
+
1176
+
"help-me": ["help-me@5.0.0", "", {}, "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg=="],
1177
+
1178
+
"hono": ["hono@4.10.7", "", {}, "sha512-icXIITfw/07Q88nLSkB9aiUrd8rYzSweK681Kjo/TSggaGbOX4RRyxxm71v+3PC8C/j+4rlxGeoTRxQDkaJkUw=="],
1179
+
1180
+
"iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="],
1181
+
1182
+
"ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
1183
+
1184
+
"ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
1185
+
1186
+
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
1187
+
1188
+
"import-in-the-middle": ["import-in-the-middle@1.15.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA=="],
1189
+
1190
+
"imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
1191
+
1192
+
"ipaddr.js": ["ipaddr.js@2.2.0", "", {}, "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA=="],
1193
+
1194
+
"is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
1195
+
1196
+
"is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
1197
+
1198
+
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
1199
+
1200
+
"is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
1201
+
1202
+
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
1203
+
1204
+
"is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
1205
+
1206
+
"is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="],
1207
+
1208
+
"isbot": ["isbot@5.1.32", "", {}, "sha512-VNfjM73zz2IBZmdShMfAUg10prm6t7HFUQmNAEOAVS4YH92ZrZcvkMcGX6cIgBJAzWDzPent/EeAtYEHNPNPBQ=="],
1209
+
1210
+
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
1211
+
1212
+
"iso-datestring-validator": ["iso-datestring-validator@2.2.2", "", {}, "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA=="],
1213
+
1214
+
"jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="],
1215
+
1216
+
"jose": ["jose@5.10.0", "", {}, "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg=="],
1217
+
1218
+
"joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="],
1219
+
1220
+
"js-base64": ["js-base64@3.7.8", "", {}, "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow=="],
1221
+
1222
+
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
1223
+
1224
+
"js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
1225
+
1226
+
"jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="],
1227
+
1228
+
"json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="],
1229
+
1230
+
"json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="],
1231
+
1232
+
"json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="],
1233
+
1234
+
"json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="],
1235
+
1236
+
"keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="],
1237
+
1238
+
"levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
1239
+
1240
+
"libsql": ["libsql@0.4.7", "", { "dependencies": { "@neon-rs/load": "^0.0.4", "detect-libc": "2.0.2" }, "optionalDependencies": { "@libsql/darwin-arm64": "0.4.7", "@libsql/darwin-x64": "0.4.7", "@libsql/linux-arm64-gnu": "0.4.7", "@libsql/linux-arm64-musl": "0.4.7", "@libsql/linux-x64-gnu": "0.4.7", "@libsql/linux-x64-musl": "0.4.7", "@libsql/win32-x64-msvc": "0.4.7" }, "os": [ "linux", "win32", "darwin", ], "cpu": [ "x64", "arm64", ] }, "sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw=="],
1241
+
1242
+
"lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="],
1243
+
1244
+
"lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="],
1245
+
1246
+
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
1247
+
1248
+
"lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="],
1249
+
1250
+
"lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
1251
+
1252
+
"lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="],
1253
+
1254
+
"lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="],
1255
+
1256
+
"lucide-react": ["lucide-react@0.464.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "sha512-eCx1qClbnw5qRqB2Z1AFFp71wdJXEwhPp5ii8LviyvHb7o/7eMXFiTyDHh7JpjM9BO9pC6ZUp/c7mCwwxbPIcg=="],
1257
+
1258
+
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
1259
+
1260
+
"mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="],
1261
+
1262
+
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
1263
+
1264
+
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
1265
+
1266
+
"mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
1267
+
1268
+
"mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
1269
+
1270
+
"minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
1271
+
1272
+
"minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
1273
+
1274
+
"minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="],
1275
+
1276
+
"minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="],
1277
+
1278
+
"module-details-from-path": ["module-details-from-path@1.0.4", "", {}, "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w=="],
1279
+
1280
+
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
1281
+
1282
+
"multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="],
1283
+
1284
+
"mustache": ["mustache@4.2.0", "", { "bin": { "mustache": "bin/mustache" } }, "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="],
1285
+
1286
+
"mute-stream": ["mute-stream@2.0.0", "", {}, "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA=="],
1287
+
1288
+
"mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="],
1289
+
1290
+
"nanoid": ["nanoid@5.1.6", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="],
1291
+
1292
+
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
1293
+
1294
+
"node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="],
1295
+
1296
+
"node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="],
1297
+
1298
+
"node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="],
1299
+
1300
+
"node-gyp-build-optional-packages": ["node-gyp-build-optional-packages@5.1.1", "", { "dependencies": { "detect-libc": "^2.0.1" }, "bin": { "node-gyp-build-optional-packages": "bin.js", "node-gyp-build-optional-packages-test": "build-test.js", "node-gyp-build-optional-packages-optional": "optional.js" } }, "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw=="],
1301
+
1302
+
"node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="],
1303
+
1304
+
"normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
1305
+
1306
+
"normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="],
1307
+
1308
+
"nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
1309
+
1310
+
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
1311
+
1312
+
"object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="],
1313
+
1314
+
"on-exit-leak-free": ["on-exit-leak-free@2.1.2", "", {}, "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA=="],
1315
+
1316
+
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
1317
+
1318
+
"optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="],
1319
+
1320
+
"p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
1321
+
1322
+
"p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="],
1323
+
1324
+
"package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],
1325
+
1326
+
"parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
1327
+
1328
+
"partysocket": ["partysocket@1.1.6", "", { "dependencies": { "event-target-polyfill": "^0.0.4" } }, "sha512-LkEk8N9hMDDsDT0iDK0zuwUDFVrVMUXFXCeN3850Ng8wtjPqPBeJlwdeY6ROlJSEh3tPoTTasXoSBYH76y118w=="],
1329
+
1330
+
"path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="],
1331
+
1332
+
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
1333
+
1334
+
"path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="],
1335
+
1336
+
"path-scurry": ["path-scurry@2.0.1", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA=="],
1337
+
1338
+
"path-type": ["path-type@6.0.0", "", {}, "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ=="],
1339
+
1340
+
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
1341
+
1342
+
"pg": ["pg@8.16.3", "", { "dependencies": { "pg-connection-string": "^2.9.1", "pg-pool": "^3.10.1", "pg-protocol": "^1.10.3", "pg-types": "2.2.0", "pgpass": "1.0.5" }, "optionalDependencies": { "pg-cloudflare": "^1.2.7" }, "peerDependencies": { "pg-native": ">=3.0.1" }, "optionalPeers": ["pg-native"] }, "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw=="],
1343
+
1344
+
"pg-cloudflare": ["pg-cloudflare@1.2.7", "", {}, "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg=="],
1345
+
1346
+
"pg-connection-string": ["pg-connection-string@2.9.1", "", {}, "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w=="],
1347
+
1348
+
"pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="],
1349
+
1350
+
"pg-pool": ["pg-pool@3.10.1", "", { "peerDependencies": { "pg": ">=8.0" } }, "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg=="],
1351
+
1352
+
"pg-protocol": ["pg-protocol@1.10.3", "", {}, "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ=="],
1353
+
1354
+
"pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="],
1355
+
1356
+
"pgpass": ["pgpass@1.0.5", "", { "dependencies": { "split2": "^4.1.0" } }, "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug=="],
1357
+
1358
+
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
1359
+
1360
+
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
1361
+
1362
+
"pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="],
1363
+
1364
+
"pino": ["pino@9.14.0", "", { "dependencies": { "@pinojs/redact": "^0.4.0", "atomic-sleep": "^1.0.0", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^2.0.0", "pino-std-serializers": "^7.0.0", "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w=="],
1365
+
1366
+
"pino-abstract-transport": ["pino-abstract-transport@2.0.0", "", { "dependencies": { "split2": "^4.0.0" } }, "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw=="],
1367
+
1368
+
"pino-pretty": ["pino-pretty@13.1.2", "", { "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", "fast-copy": "^3.0.2", "fast-safe-stringify": "^2.1.1", "help-me": "^5.0.0", "joycon": "^3.1.1", "minimist": "^1.2.6", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^2.0.0", "pump": "^3.0.0", "secure-json-parse": "^4.0.0", "sonic-boom": "^4.0.1", "strip-json-comments": "^5.0.2" }, "bin": { "pino-pretty": "bin.js" } }, "sha512-3cN0tCakkT4f3zo9RXDIhy6GTvtYD6bK4CRBLN9j3E/ePqN1tugAXD5rGVfoChW6s0hiek+eyYlLNqc/BG7vBQ=="],
1369
+
1370
+
"pino-std-serializers": ["pino-std-serializers@7.0.0", "", {}, "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA=="],
1371
+
1372
+
"pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="],
1373
+
1374
+
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
1375
+
1376
+
"postcss-calc": ["postcss-calc@10.1.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.38" } }, "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw=="],
1377
+
1378
+
"postcss-colormin": ["postcss-colormin@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-api": "^3.0.0", "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA=="],
1379
+
1380
+
"postcss-convert-values": ["postcss-convert-values@7.0.8", "", { "dependencies": { "browserslist": "^4.27.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg=="],
1381
+
1382
+
"postcss-discard-comments": ["postcss-discard-comments@7.0.5", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ=="],
1383
+
1384
+
"postcss-discard-duplicates": ["postcss-discard-duplicates@7.0.2", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w=="],
1385
+
1386
+
"postcss-discard-empty": ["postcss-discard-empty@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg=="],
1387
+
1388
+
"postcss-discard-overridden": ["postcss-discard-overridden@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg=="],
1389
+
1390
+
"postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="],
1391
+
1392
+
"postcss-js": ["postcss-js@4.1.0", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw=="],
1393
+
1394
+
"postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="],
1395
+
1396
+
"postcss-merge-longhand": ["postcss-merge-longhand@7.0.5", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^7.0.5" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw=="],
1397
+
1398
+
"postcss-merge-rules": ["postcss-merge-rules@7.0.7", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-api": "^3.0.0", "cssnano-utils": "^5.0.1", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew=="],
1399
+
1400
+
"postcss-minify-font-values": ["postcss-minify-font-values@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ=="],
1401
+
1402
+
"postcss-minify-gradients": ["postcss-minify-gradients@7.0.1", "", { "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A=="],
1403
+
1404
+
"postcss-minify-params": ["postcss-minify-params@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ=="],
1405
+
1406
+
"postcss-minify-selectors": ["postcss-minify-selectors@7.0.5", "", { "dependencies": { "cssesc": "^3.0.0", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug=="],
1407
+
1408
+
"postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="],
1409
+
1410
+
"postcss-normalize-charset": ["postcss-normalize-charset@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ=="],
1411
+
1412
+
"postcss-normalize-display-values": ["postcss-normalize-display-values@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ=="],
1413
+
1414
+
"postcss-normalize-positions": ["postcss-normalize-positions@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ=="],
1415
+
1416
+
"postcss-normalize-repeat-style": ["postcss-normalize-repeat-style@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ=="],
1417
+
1418
+
"postcss-normalize-string": ["postcss-normalize-string@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ=="],
1419
+
1420
+
"postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg=="],
1421
+
1422
+
"postcss-normalize-unicode": ["postcss-normalize-unicode@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q=="],
1423
+
1424
+
"postcss-normalize-url": ["postcss-normalize-url@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ=="],
1425
+
1426
+
"postcss-normalize-whitespace": ["postcss-normalize-whitespace@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA=="],
1427
+
1428
+
"postcss-ordered-values": ["postcss-ordered-values@7.0.2", "", { "dependencies": { "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw=="],
1429
+
1430
+
"postcss-reduce-initial": ["postcss-reduce-initial@7.0.5", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA=="],
1431
+
1432
+
"postcss-reduce-transforms": ["postcss-reduce-transforms@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g=="],
1433
+
1434
+
"postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
1435
+
1436
+
"postcss-svgo": ["postcss-svgo@7.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^4.0.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w=="],
1437
+
1438
+
"postcss-unique-selectors": ["postcss-unique-selectors@7.0.4", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ=="],
1439
+
1440
+
"postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="],
1441
+
1442
+
"postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="],
1443
+
1444
+
"postgres-bytea": ["postgres-bytea@1.0.0", "", {}, "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="],
1445
+
1446
+
"postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="],
1447
+
1448
+
"postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="],
1449
+
1450
+
"prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
1451
+
1452
+
"prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="],
1453
+
1454
+
"process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="],
1455
+
1456
+
"process-warning": ["process-warning@5.0.0", "", {}, "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA=="],
1457
+
1458
+
"promise-limit": ["promise-limit@2.7.0", "", {}, "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw=="],
1459
+
1460
+
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
1461
+
1462
+
"pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="],
1463
+
1464
+
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
1465
+
1466
+
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
1467
+
1468
+
"quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="],
1469
+
1470
+
"react": ["react@19.0.0", "", {}, "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ=="],
1471
+
1472
+
"react-dom": ["react-dom@19.0.0", "", { "dependencies": { "scheduler": "^0.25.0" }, "peerDependencies": { "react": "^19.0.0" } }, "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ=="],
1473
+
1474
+
"react-hook-form": ["react-hook-form@7.66.1", "", { "peerDependencies": { "react": "^16.8.0 || ^17 || ^18 || ^19" } }, "sha512-2KnjpgG2Rhbi+CIiIBQQ9Df6sMGH5ExNyFl4Hw9qO7pIqMBR8Bvu9RQyjl3JM4vehzCh9soiNUM/xYMswb2EiA=="],
1475
+
1476
+
"react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="],
1477
+
1478
+
"react-remove-scroll": ["react-remove-scroll@2.7.1", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA=="],
1479
+
1480
+
"react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="],
1481
+
1482
+
"react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="],
1483
+
1484
+
"read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="],
1485
+
1486
+
"readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="],
1487
+
1488
+
"readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
1489
+
1490
+
"real-require": ["real-require@0.2.0", "", {}, "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg=="],
1491
+
1492
+
"recast": ["recast@0.23.11", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA=="],
1493
+
1494
+
"require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="],
1495
+
1496
+
"require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="],
1497
+
1498
+
"resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="],
1499
+
1500
+
"resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
1501
+
1502
+
"resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
1503
+
1504
+
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
1505
+
1506
+
"rimraf": ["rimraf@6.1.2", "", { "dependencies": { "glob": "^13.0.0", "package-json-from-dist": "^1.0.1" }, "bin": { "rimraf": "dist/esm/bin.mjs" } }, "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g=="],
1507
+
1508
+
"rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="],
1509
+
1510
+
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
1511
+
1512
+
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
1513
+
1514
+
"safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="],
1515
+
1516
+
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
1517
+
1518
+
"sax": ["sax@1.4.3", "", {}, "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ=="],
1519
+
1520
+
"scheduler": ["scheduler@0.25.0", "", {}, "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA=="],
1521
+
1522
+
"secure-json-parse": ["secure-json-parse@4.1.0", "", {}, "sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA=="],
1523
+
1524
+
"semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
1525
+
1526
+
"seroval": ["seroval@1.4.0", "", {}, "sha512-BdrNXdzlofomLTiRnwJTSEAaGKyHHZkbMXIywOh7zlzp4uZnXErEwl9XZ+N1hJSNpeTtNxWvVwN0wUzAIQ4Hpg=="],
1527
+
1528
+
"seroval-plugins": ["seroval-plugins@1.4.0", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-zir1aWzoiax6pbBVjoYVd0O1QQXgIL3eVGBMsBsNmM8Ukq90yGaWlfx0AB9dTS8GPqrOrbXn79vmItCUP9U3BQ=="],
1529
+
1530
+
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
1531
+
1532
+
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
1533
+
1534
+
"shimmer": ["shimmer@1.2.1", "", {}, "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="],
1535
+
1536
+
"signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
1537
+
1538
+
"slash": ["slash@5.1.0", "", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="],
1539
+
1540
+
"solid-js": ["solid-js@1.9.10", "", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.3.0", "seroval-plugins": "~1.3.0" } }, "sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew=="],
1541
+
1542
+
"sonic-boom": ["sonic-boom@4.2.0", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww=="],
1543
+
1544
+
"source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
1545
+
1546
+
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
1547
+
1548
+
"source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="],
1549
+
1550
+
"split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="],
1551
+
1552
+
"string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
1553
+
1554
+
"string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="],
1555
+
1556
+
"strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
1557
+
1558
+
"strip-json-comments": ["strip-json-comments@5.0.3", "", {}, "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw=="],
1559
+
1560
+
"stylehacks": ["stylehacks@7.0.7", "", { "dependencies": { "browserslist": "^4.27.0", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g=="],
1561
+
1562
+
"sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="],
1563
+
1564
+
"supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
1565
+
1566
+
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
1567
+
1568
+
"svgo": ["svgo@4.0.0", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.4.1" }, "bin": "./bin/svgo.js" }, "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw=="],
1569
+
1570
+
"tailwind-merge": ["tailwind-merge@2.6.0", "", {}, "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA=="],
1571
+
1572
+
"tailwindcss": ["tailwindcss@3.4.18", "", { "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.7", "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 || ^5.0 || ^6.0", "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" } }, "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ=="],
1573
+
1574
+
"tailwindcss-animate": ["tailwindcss-animate@1.0.7", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="],
1575
+
1576
+
"tar": ["tar@7.5.2", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg=="],
1577
+
1578
+
"temporal-polyfill": ["temporal-polyfill@0.3.0", "", { "dependencies": { "temporal-spec": "0.3.0" } }, "sha512-qNsTkX9K8hi+FHDfHmf22e/OGuXmfBm9RqNismxBrnSmZVJKegQ+HYYXT+R7Ha8F/YSm2Y34vmzD4cxMu2u95g=="],
1579
+
1580
+
"temporal-spec": ["temporal-spec@0.3.0", "", {}, "sha512-n+noVpIqz4hYgFSMOSiINNOUOMFtV5cZQNCmmszA6GiVFVRt3G7AqVyhXjhCSmowvQn+NsGn+jMDMKJYHd3bSQ=="],
1581
+
1582
+
"thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="],
1583
+
1584
+
"thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="],
1585
+
1586
+
"thread-stream": ["thread-stream@3.1.0", "", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A=="],
1587
+
1588
+
"tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="],
1589
+
1590
+
"tiny-warning": ["tiny-warning@1.0.3", "", {}, "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="],
1591
+
1592
+
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
1593
+
1594
+
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
1595
+
1596
+
"ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="],
1597
+
1598
+
"ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="],
1599
+
1600
+
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
1601
+
1602
+
"tsx": ["tsx@4.20.6", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg=="],
1603
+
1604
+
"turbo": ["turbo@2.6.1", "", { "optionalDependencies": { "turbo-darwin-64": "2.6.1", "turbo-darwin-arm64": "2.6.1", "turbo-linux-64": "2.6.1", "turbo-linux-arm64": "2.6.1", "turbo-windows-64": "2.6.1", "turbo-windows-arm64": "2.6.1" }, "bin": { "turbo": "bin/turbo" } }, "sha512-qBwXXuDT3rA53kbNafGbT5r++BrhRgx3sAo0cHoDAeG9g1ItTmUMgltz3Hy7Hazy1ODqNpR+C7QwqL6DYB52yA=="],
1605
+
1606
+
"turbo-darwin-64": ["turbo-darwin-64@2.6.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ=="],
1607
+
1608
+
"turbo-darwin-arm64": ["turbo-darwin-arm64@2.6.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-U0PIPTPyxdLsrC3jN7jaJUwgzX5sVUBsKLO7+6AL+OASaa1NbT1pPdiZoTkblBAALLP76FM0LlnsVQOnmjYhyw=="],
1609
+
1610
+
"turbo-linux-64": ["turbo-linux-64@2.6.1", "", { "os": "linux", "cpu": "x64" }, "sha512-eM1uLWgzv89bxlK29qwQEr9xYWBhmO/EGiH22UGfq+uXr+QW1OvNKKMogSN65Ry8lElMH4LZh0aX2DEc7eC0Mw=="],
1611
+
1612
+
"turbo-linux-arm64": ["turbo-linux-arm64@2.6.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-MFFh7AxAQAycXKuZDrbeutfWM5Ep0CEZ9u7zs4Hn2FvOViTCzIfEhmuJou3/a5+q5VX1zTxQrKGy+4Lf5cdpsA=="],
1613
+
1614
+
"turbo-windows-64": ["turbo-windows-64@2.6.1", "", { "os": "win32", "cpu": "x64" }, "sha512-buq7/VAN7KOjMYi4tSZT5m+jpqyhbRU2EUTTvp6V0Ii8dAkY2tAAjQN1q5q2ByflYWKecbQNTqxmVploE0LVwQ=="],
1615
+
1616
+
"turbo-windows-arm64": ["turbo-windows-arm64@2.6.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-7w+AD5vJp3R+FB0YOj1YJcNcOOvBior7bcHTodqp90S3x3bLgpr7tE6xOea1e8JkP7GK6ciKVUpQvV7psiwU5Q=="],
1617
+
1618
+
"type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="],
1619
+
1620
+
"type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
1621
+
1622
+
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
1623
+
1624
+
"typescript-eslint": ["typescript-eslint@8.48.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.48.0", "@typescript-eslint/parser": "8.48.0", "@typescript-eslint/typescript-estree": "8.48.0", "@typescript-eslint/utils": "8.48.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-fcKOvQD9GUn3Xw63EgiDqhvWJ5jsyZUaekl3KVpGsDJnN46WJTe3jWxtQP9lMZm1LJNkFLlTaWAxK2vUQR+cqw=="],
1625
+
1626
+
"uint8arrays": ["uint8arrays@3.0.0", "", { "dependencies": { "multiformats": "^9.4.2" } }, "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA=="],
1627
+
1628
+
"undici": ["undici@6.22.0", "", {}, "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw=="],
1629
+
1630
+
"undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
1631
+
1632
+
"unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="],
1633
+
1634
+
"unplugin": ["unplugin@2.3.11", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww=="],
1635
+
1636
+
"update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="],
1637
+
1638
+
"uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
1639
+
1640
+
"use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="],
1641
+
1642
+
"use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="],
1643
+
1644
+
"use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="],
1645
+
1646
+
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
1647
+
1648
+
"vite": ["vite@7.2.4", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w=="],
1649
+
1650
+
"vscode-jsonrpc": ["vscode-jsonrpc@8.2.0", "", {}, "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA=="],
1651
+
1652
+
"vscode-languageserver": ["vscode-languageserver@9.0.1", "", { "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" } }, "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g=="],
1653
+
1654
+
"vscode-languageserver-protocol": ["vscode-languageserver-protocol@3.17.5", "", { "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" } }, "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg=="],
1655
+
1656
+
"vscode-languageserver-textdocument": ["vscode-languageserver-textdocument@1.0.12", "", {}, "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="],
1657
+
1658
+
"vscode-languageserver-types": ["vscode-languageserver-types@3.17.5", "", {}, "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="],
1659
+
1660
+
"web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
1661
+
1662
+
"webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="],
1663
+
1664
+
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
1665
+
1666
+
"word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="],
1667
+
1668
+
"wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="],
1669
+
1670
+
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
1671
+
1672
+
"ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="],
1673
+
1674
+
"xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="],
1675
+
1676
+
"y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
1677
+
1678
+
"yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="],
1679
+
1680
+
"yaml": ["yaml@2.8.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="],
1681
+
1682
+
"yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^7.2.0", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="],
1683
+
1684
+
"yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="],
1685
+
1686
+
"yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="],
1687
+
1688
+
"yoctocolors-cjs": ["yoctocolors-cjs@2.1.3", "", {}, "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw=="],
1689
+
1690
+
"zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
1691
+
1692
+
"@atproto-labs/simple-store-memory/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
1693
+
1694
+
"@atproto/common/@atproto/common-web": ["@atproto/common-web@0.4.3", "", { "dependencies": { "graphemer": "^1.4.0", "multiformats": "^9.9.0", "uint8arrays": "3.0.0", "zod": "^3.23.8" } }, "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg=="],
1695
+
1696
+
"@atproto/common/pino": ["pino@8.21.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^1.2.0", "pino-std-serializers": "^6.0.0", "process-warning": "^3.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^3.7.0", "thread-stream": "^2.6.0" }, "bin": { "pino": "bin.js" } }, "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q=="],
1697
+
1698
+
"@atproto/lexicon/@atproto/common-web": ["@atproto/common-web@0.4.3", "", { "dependencies": { "graphemer": "^1.4.0", "multiformats": "^9.9.0", "uint8arrays": "3.0.0", "zod": "^3.23.8" } }, "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg=="],
1699
+
1700
+
"@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
1701
+
1702
+
"@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
1703
+
1704
+
"@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
1705
+
1706
+
"@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
1707
+
1708
+
"@cookware/database/@libsql/client": ["@libsql/client@0.15.15", "", { "dependencies": { "@libsql/core": "^0.15.14", "@libsql/hrana-client": "^0.7.0", "js-base64": "^3.7.5", "libsql": "^0.5.22", "promise-limit": "^2.7.0" } }, "sha512-twC0hQxPNHPKfeOv3sNT6u2pturQjLcI+CnpTM0SjRpocEGgfiZ7DWKXLNnsothjyJmDqEsBQJ5ztq9Wlu470w=="],
1709
+
1710
+
"@cookware/web/@atcute/bluesky": ["@atcute/bluesky@1.0.15", "", { "peerDependencies": { "@atcute/client": "^1.0.0 || ^2.0.0" } }, "sha512-+EFiybmKQ97aBAgtaD+cKRJER5AMn3cZMkEwEg/pDdWyzxYJ9m1UgemmLdTgI8VrxPufKqdXS2nl7uO7TY6BPA=="],
1711
+
1712
+
"@cookware/web/typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="],
1713
+
1714
+
"@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="],
1715
+
1716
+
"@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
1717
+
1718
+
"@eslint/eslintrc/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
1719
+
1720
+
"@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="],
1721
+
1722
+
"@eslint/eslintrc/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
1723
+
1724
+
"@inquirer/core/wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="],
1725
+
1726
+
"@opentelemetry/core/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="],
1727
+
1728
+
"@opentelemetry/instrumentation-http/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.1", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.1", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-SgHEKXoVxOjc20ZYusPG3Fh+RLIZTSa4x8QtD3NfgAUDyqdFFS9W1F2ZVbZkqDCdyMcQG02Ok4duUGLHJXHgbA=="],
1729
+
1730
+
"@opentelemetry/instrumentation-http/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="],
1731
+
1732
+
"@opentelemetry/instrumentation-pg/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.27.0", "", {}, "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg=="],
1733
+
1734
+
"@opentelemetry/instrumentation-pg/@types/pg": ["@types/pg@8.6.1", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w=="],
1735
+
1736
+
"@opentelemetry/resources/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="],
1737
+
1738
+
"@opentelemetry/sdk-trace-base/@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.28.0", "", {}, "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA=="],
1739
+
1740
+
"@prisma/instrumentation/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.53.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.53.0", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A=="],
1741
+
1742
+
"@radix-ui/react-arrow/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1743
+
1744
+
"@radix-ui/react-collapsible/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1745
+
1746
+
"@radix-ui/react-collapsible/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1747
+
1748
+
"@radix-ui/react-collection/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1749
+
1750
+
"@radix-ui/react-collection/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1751
+
1752
+
"@radix-ui/react-collection/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1753
+
1754
+
"@radix-ui/react-dialog/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1755
+
1756
+
"@radix-ui/react-dialog/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1757
+
1758
+
"@radix-ui/react-dialog/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1759
+
1760
+
"@radix-ui/react-dismissable-layer/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1761
+
1762
+
"@radix-ui/react-dropdown-menu/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1763
+
1764
+
"@radix-ui/react-dropdown-menu/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1765
+
1766
+
"@radix-ui/react-focus-scope/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1767
+
1768
+
"@radix-ui/react-menu/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1769
+
1770
+
"@radix-ui/react-menu/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1771
+
1772
+
"@radix-ui/react-menu/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1773
+
1774
+
"@radix-ui/react-popper/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1775
+
1776
+
"@radix-ui/react-popper/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1777
+
1778
+
"@radix-ui/react-portal/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1779
+
1780
+
"@radix-ui/react-roving-focus/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1781
+
1782
+
"@radix-ui/react-roving-focus/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1783
+
1784
+
"@radix-ui/react-tooltip/@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="],
1785
+
1786
+
"@radix-ui/react-tooltip/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1787
+
1788
+
"@radix-ui/react-tooltip/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1789
+
1790
+
"@radix-ui/react-visually-hidden/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
1791
+
1792
+
"@types/pg-pool/@types/pg": ["@types/pg@8.6.1", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w=="],
1793
+
1794
+
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
1795
+
1796
+
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
1797
+
1798
+
"@vitejs/plugin-react-swc/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="],
1799
+
1800
+
"anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
1801
+
1802
+
"chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
1803
+
1804
+
"csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="],
1805
+
1806
+
"eslint/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
1807
+
1808
+
"fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
1809
+
1810
+
"glob/minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="],
1811
+
1812
+
"globby/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
1813
+
1814
+
"micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
1815
+
1816
+
"p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
1817
+
1818
+
"postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
1819
+
1820
+
"postcss-calc/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
1821
+
1822
+
"postcss-discard-comments/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
1823
+
1824
+
"postcss-merge-rules/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
1825
+
1826
+
"postcss-minify-selectors/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
1827
+
1828
+
"postcss-unique-selectors/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
1829
+
1830
+
"readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
1831
+
1832
+
"recast/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
1833
+
1834
+
"solid-js/seroval": ["seroval@1.3.2", "", {}, "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ=="],
1835
+
1836
+
"solid-js/seroval-plugins": ["seroval-plugins@1.3.3", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w=="],
1837
+
1838
+
"source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
1839
+
1840
+
"stylehacks/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
1841
+
1842
+
"svgo/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="],
1843
+
1844
+
"tsx/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
1845
+
1846
+
"vite/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
1847
+
1848
+
"wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="],
1849
+
1850
+
"@atproto/common/pino/pino-abstract-transport": ["pino-abstract-transport@1.2.0", "", { "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q=="],
1851
+
1852
+
"@atproto/common/pino/pino-std-serializers": ["pino-std-serializers@6.2.2", "", {}, "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="],
1853
+
1854
+
"@atproto/common/pino/process-warning": ["process-warning@3.0.0", "", {}, "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="],
1855
+
1856
+
"@atproto/common/pino/sonic-boom": ["sonic-boom@3.8.1", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg=="],
1857
+
1858
+
"@atproto/common/pino/thread-stream": ["thread-stream@2.7.0", "", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw=="],
1859
+
1860
+
"@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
1861
+
1862
+
"@cookware/database/@libsql/client/@libsql/core": ["@libsql/core@0.15.15", "", { "dependencies": { "js-base64": "^3.7.5" } }, "sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA=="],
1863
+
1864
+
"@cookware/database/@libsql/client/libsql": ["libsql@0.5.22", "", { "dependencies": { "@neon-rs/load": "^0.0.4", "detect-libc": "2.0.2" }, "optionalDependencies": { "@libsql/darwin-arm64": "0.5.22", "@libsql/darwin-x64": "0.5.22", "@libsql/linux-arm-gnueabihf": "0.5.22", "@libsql/linux-arm-musleabihf": "0.5.22", "@libsql/linux-arm64-gnu": "0.5.22", "@libsql/linux-arm64-musl": "0.5.22", "@libsql/linux-x64-gnu": "0.5.22", "@libsql/linux-x64-musl": "0.5.22", "@libsql/win32-x64-msvc": "0.5.22" }, "os": [ "linux", "win32", "darwin", ], "cpu": [ "arm", "x64", "arm64", ] }, "sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA=="],
1865
+
1866
+
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="],
1867
+
1868
+
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="],
1869
+
1870
+
"@esbuild-kit/core-utils/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.18.20", "", { "os": "android", "cpu": "x64" }, "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg=="],
1871
+
1872
+
"@esbuild-kit/core-utils/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.18.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA=="],
1873
+
1874
+
"@esbuild-kit/core-utils/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.18.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ=="],
1875
+
1876
+
"@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.18.20", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw=="],
1877
+
1878
+
"@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.18.20", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ=="],
1879
+
1880
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.18.20", "", { "os": "linux", "cpu": "arm" }, "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg=="],
1881
+
1882
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.18.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA=="],
1883
+
1884
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.18.20", "", { "os": "linux", "cpu": "ia32" }, "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA=="],
1885
+
1886
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg=="],
1887
+
1888
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ=="],
1889
+
1890
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.18.20", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA=="],
1891
+
1892
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A=="],
1893
+
1894
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.18.20", "", { "os": "linux", "cpu": "s390x" }, "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ=="],
1895
+
1896
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.18.20", "", { "os": "linux", "cpu": "x64" }, "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w=="],
1897
+
1898
+
"@esbuild-kit/core-utils/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.18.20", "", { "os": "none", "cpu": "x64" }, "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A=="],
1899
+
1900
+
"@esbuild-kit/core-utils/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.18.20", "", { "os": "openbsd", "cpu": "x64" }, "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg=="],
1901
+
1902
+
"@esbuild-kit/core-utils/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.18.20", "", { "os": "sunos", "cpu": "x64" }, "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ=="],
1903
+
1904
+
"@esbuild-kit/core-utils/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.18.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg=="],
1905
+
1906
+
"@esbuild-kit/core-utils/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="],
1907
+
1908
+
"@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="],
1909
+
1910
+
"@eslint/eslintrc/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
1911
+
1912
+
"@inquirer/core/wrap-ansi/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
1913
+
1914
+
"@inquirer/core/wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
1915
+
1916
+
"@opentelemetry/instrumentation-http/@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.1", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg=="],
1917
+
1918
+
"@prisma/instrumentation/@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.53.0", "", { "dependencies": { "@opentelemetry/api": "^1.0.0" } }, "sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw=="],
1919
+
1920
+
"@radix-ui/react-arrow/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1921
+
1922
+
"@radix-ui/react-collapsible/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1923
+
1924
+
"@radix-ui/react-dismissable-layer/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1925
+
1926
+
"@radix-ui/react-dropdown-menu/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1927
+
1928
+
"@radix-ui/react-focus-scope/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1929
+
1930
+
"@radix-ui/react-popper/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1931
+
1932
+
"@radix-ui/react-portal/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1933
+
1934
+
"@radix-ui/react-roving-focus/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1935
+
1936
+
"@radix-ui/react-visually-hidden/@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
1937
+
1938
+
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
1939
+
1940
+
"csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="],
1941
+
1942
+
"eslint/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
1943
+
1944
+
"tsx/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="],
1945
+
1946
+
"tsx/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="],
1947
+
1948
+
"tsx/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="],
1949
+
1950
+
"tsx/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="],
1951
+
1952
+
"tsx/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="],
1953
+
1954
+
"tsx/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="],
1955
+
1956
+
"tsx/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="],
1957
+
1958
+
"tsx/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="],
1959
+
1960
+
"tsx/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="],
1961
+
1962
+
"tsx/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="],
1963
+
1964
+
"tsx/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="],
1965
+
1966
+
"tsx/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="],
1967
+
1968
+
"tsx/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="],
1969
+
1970
+
"tsx/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="],
1971
+
1972
+
"tsx/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="],
1973
+
1974
+
"tsx/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="],
1975
+
1976
+
"tsx/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="],
1977
+
1978
+
"tsx/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="],
1979
+
1980
+
"tsx/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="],
1981
+
1982
+
"tsx/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="],
1983
+
1984
+
"tsx/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="],
1985
+
1986
+
"tsx/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="],
1987
+
1988
+
"tsx/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
1989
+
1990
+
"vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="],
1991
+
1992
+
"vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="],
1993
+
1994
+
"vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="],
1995
+
1996
+
"vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="],
1997
+
1998
+
"vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="],
1999
+
2000
+
"vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="],
2001
+
2002
+
"vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="],
2003
+
2004
+
"vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="],
2005
+
2006
+
"vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="],
2007
+
2008
+
"vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="],
2009
+
2010
+
"vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="],
2011
+
2012
+
"vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="],
2013
+
2014
+
"vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="],
2015
+
2016
+
"vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="],
2017
+
2018
+
"vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="],
2019
+
2020
+
"vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="],
2021
+
2022
+
"vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="],
2023
+
2024
+
"vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="],
2025
+
2026
+
"vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="],
2027
+
2028
+
"vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="],
2029
+
2030
+
"vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="],
2031
+
2032
+
"vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="],
2033
+
2034
+
"vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
2035
+
2036
+
"@cookware/database/@libsql/client/libsql/@libsql/darwin-arm64": ["@libsql/darwin-arm64@0.5.22", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA=="],
2037
+
2038
+
"@cookware/database/@libsql/client/libsql/@libsql/darwin-x64": ["@libsql/darwin-x64@0.5.22", "", { "os": "darwin", "cpu": "x64" }, "sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA=="],
2039
+
2040
+
"@cookware/database/@libsql/client/libsql/@libsql/linux-arm64-gnu": ["@libsql/linux-arm64-gnu@0.5.22", "", { "os": "linux", "cpu": "arm64" }, "sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA=="],
2041
+
2042
+
"@cookware/database/@libsql/client/libsql/@libsql/linux-arm64-musl": ["@libsql/linux-arm64-musl@0.5.22", "", { "os": "linux", "cpu": "arm64" }, "sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw=="],
2043
+
2044
+
"@cookware/database/@libsql/client/libsql/@libsql/linux-x64-gnu": ["@libsql/linux-x64-gnu@0.5.22", "", { "os": "linux", "cpu": "x64" }, "sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew=="],
2045
+
2046
+
"@cookware/database/@libsql/client/libsql/@libsql/linux-x64-musl": ["@libsql/linux-x64-musl@0.5.22", "", { "os": "linux", "cpu": "x64" }, "sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg=="],
2047
+
2048
+
"@cookware/database/@libsql/client/libsql/@libsql/win32-x64-msvc": ["@libsql/win32-x64-msvc@0.5.22", "", { "os": "win32", "cpu": "x64" }, "sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA=="],
2049
+
2050
+
"@inquirer/core/wrap-ansi/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
2051
+
2052
+
"@inquirer/core/wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
2053
+
}
2054
+
}
+34
config/dev/caddy/Caddyfile
+34
config/dev/caddy/Caddyfile
···
1
+
{
2
+
storage file_system /data/
3
+
debug
4
+
}
5
+
6
+
(tls_config) {
7
+
tls /tls/dev.crt /tls/dev.key {
8
+
ca_root /tls/ca.crt
9
+
}
10
+
}
11
+
12
+
api.local.recipes.blue {
13
+
import tls_config
14
+
reverse_proxy http://host.docker.internal:8787
15
+
}
16
+
17
+
local.recipes.blue {
18
+
import tls_config
19
+
reverse_proxy http://host.docker.internal:5173
20
+
21
+
handle_path /xrpc/* {
22
+
rewrite * /xrpc{uri}
23
+
reverse_proxy http://host.docker.internal:8787
24
+
}
25
+
handle_path /api/* {
26
+
rewrite * /api{uri}
27
+
reverse_proxy http://host.docker.internal:8787
28
+
}
29
+
}
30
+
31
+
turso.local.recipes.blue {
32
+
import tls_config
33
+
reverse_proxy http://libsql:8080
34
+
}
+28
config/dev/caddy/compose.yaml
+28
config/dev/caddy/compose.yaml
···
1
+
---
2
+
volumes:
3
+
caddy_data: {}
4
+
caddy_config: {}
5
+
6
+
networks:
7
+
caddy:
8
+
9
+
services:
10
+
caddy:
11
+
image: caddy:2
12
+
restart: unless-stopped
13
+
cap_add:
14
+
- NET_ADMIN
15
+
ports:
16
+
- "80:80"
17
+
- "443:443"
18
+
- "443:443/udp"
19
+
volumes:
20
+
- ./Caddyfile:/etc/caddy/Caddyfile:ro
21
+
- ../pki:/tls:ro
22
+
- caddy_data:/data
23
+
- caddy_config:/config
24
+
extra_hosts:
25
+
- "host.docker.internal:host-gateway"
26
+
networks:
27
+
- caddy
28
+
- recipesblue
+13
config/dev/db/compose.yaml
+13
config/dev/db/compose.yaml
+29
config/dev/pki/ca.crt
+29
config/dev/pki/ca.crt
···
1
+
-----BEGIN CERTIFICATE-----
2
+
MIIE/DCCA2SgAwIBAgIRALK0p95iJHmmXOWjMAS7T4swDQYJKoZIhvcNAQELBQAw
3
+
gZUxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE1MDMGA1UECwwsaGF5
4
+
ZGVuQEhBWURFTi1XMTEubG9jYWxkb21haW4gKEhheWRlbiBZb3VuZykxPDA6BgNV
5
+
BAMMM21rY2VydCBoYXlkZW5ASEFZREVOLVcxMS5sb2NhbGRvbWFpbiAoSGF5ZGVu
6
+
IFlvdW5nKTAeFw0yNTExMjIyMjIyNTdaFw0zNTExMjIyMjIyNTdaMIGVMR4wHAYD
7
+
VQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExNTAzBgNVBAsMLGhheWRlbkBIQVlE
8
+
RU4tVzExLmxvY2FsZG9tYWluIChIYXlkZW4gWW91bmcpMTwwOgYDVQQDDDNta2Nl
9
+
cnQgaGF5ZGVuQEhBWURFTi1XMTEubG9jYWxkb21haW4gKEhheWRlbiBZb3VuZykw
10
+
ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCzcORfQsG3VWrZ8GnJZZhB
11
+
FTtjV/A+LllaUlt2GIjAf9eBMIct7C4GoVfUSG8V5C3UMHMDpoZZCSJym2NyndOV
12
+
CI1O/pr8sC4klVGetny/GxO443tn6z5Xz/BHsXSrE35igIO1p8S2xYctlXYq/cdE
13
+
N5PsceQEg2p5K/EsBpcXEM1gMfUXB+v7nUhNx5AO+z+kZzSNkcmPYigwxq/pm3iM
14
+
H8vYqhmZCT9zD7+FUFsBgbEf/bLU41xium21zdqzS7aoG2rypRoDvbaWbEvqZoJO
15
+
2VBnqBwI2aaMqCJ+Lc2VwLOYHNqu6iisTMzaNLbj2dr8Uvatem3yZvB+ACPzpQ8O
16
+
zIQp5gjKZQ6nC2/1kvLIo9g5g2mCyG2hphadv/ubPmxaqe0w/PobngQFt5SbO2au
17
+
mguvKFRa4FEm/Dy215+1Hil3owQkSGEREQMLS+t8TorBw7bgXUF8iSEiZS6JYabD
18
+
yHYr8oBl/axDaAfCPkH4KGcjVf4vxOK255RbIBoCIksCAwEAAaNFMEMwDgYDVR0P
19
+
AQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKfqTnO4509h
20
+
3YIiTC2EnnZYLG1fMA0GCSqGSIb3DQEBCwUAA4IBgQBSRKsZyGQoxcONbYrTVK82
21
+
PAeOnYwlk27vPhhYbSTfgJRS5v3om9brccAVSPbZX4WXT5f/ibvLja0o7zU3RmxJ
22
+
D5M4narw76fRXNzHjHfU6PRqDqLzJhPWM/V0IuQotU6kxEoNrfg9a1buB4lqldXr
23
+
xqAarNM7kb0UXB/Wi1paKBk8o9CIvfoDP0kHoZHapBN6VWsJyPaTDfSH0roUfU+H
24
+
jsm75nTXMI6h7eI5jo7FJcut1wbBpSiHdvmr4BX2SOGPHbSYCACirGExADKa4ULz
25
+
AdhDBtBGEBtjzIKi9cLFTZY9bHFQsrwhegEDJwZs/ZH931q+f3ciE2og7qqE0drZ
26
+
zZrmjY9QdOagSNRWw1089jG02333wtdgH+eJbYqVaKxB+vpBMUP72HEDS4WOh1E6
27
+
nLNjqm6cZ4bW8I5gfsIDvcsmSGWdHaZLWvXcO20G2ySyfd/64L5+VHAs5rtbbzZr
28
+
TR3BleuWVc5lMCAQtdoMAcy7UFPdUzSxHdrATc/Y/uQ=
29
+
-----END CERTIFICATE-----
+40
config/dev/pki/ca.key
+40
config/dev/pki/ca.key
···
1
+
-----BEGIN PRIVATE KEY-----
2
+
MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQCzcORfQsG3VWrZ
3
+
8GnJZZhBFTtjV/A+LllaUlt2GIjAf9eBMIct7C4GoVfUSG8V5C3UMHMDpoZZCSJy
4
+
m2NyndOVCI1O/pr8sC4klVGetny/GxO443tn6z5Xz/BHsXSrE35igIO1p8S2xYct
5
+
lXYq/cdEN5PsceQEg2p5K/EsBpcXEM1gMfUXB+v7nUhNx5AO+z+kZzSNkcmPYigw
6
+
xq/pm3iMH8vYqhmZCT9zD7+FUFsBgbEf/bLU41xium21zdqzS7aoG2rypRoDvbaW
7
+
bEvqZoJO2VBnqBwI2aaMqCJ+Lc2VwLOYHNqu6iisTMzaNLbj2dr8Uvatem3yZvB+
8
+
ACPzpQ8OzIQp5gjKZQ6nC2/1kvLIo9g5g2mCyG2hphadv/ubPmxaqe0w/PobngQF
9
+
t5SbO2aumguvKFRa4FEm/Dy215+1Hil3owQkSGEREQMLS+t8TorBw7bgXUF8iSEi
10
+
ZS6JYabDyHYr8oBl/axDaAfCPkH4KGcjVf4vxOK255RbIBoCIksCAwEAAQKCAYAI
11
+
6Yd+L7udVnG7J1SpuxEH0n0jnv+Apx6q/MIsKGXKYc8bTIS6RCu5CpRpJ7vUs4OP
12
+
MWTU/pVXoLuEQ7F5xNr4YPdbwAuEl1+DU6M9JcUmXLrrCOldLPLou5wsg2TPBmXV
13
+
kJp6ED4V8dOX8P9wfTBDdBs1uCZiDwDfyc3tqNoiPCRnLbQFk9AlrBcmPc4q4FG1
14
+
4aZbja0cIPzsB0I/cQhYtU+TkEc7MZlkJpkVjvsmJQHeG+Sg7DXvdWDzkajWFOGF
15
+
RobzHS/C+9xrybTMTr/nBWFY0rzeJNkNVAK1qQMKgkK+M+WihQYlH/x9XbNDzccx
16
+
zDDU1Vn1c7WnrHiLN2m3SKgT/0NNxgZoQknOkR0kkTzAkBoco/T+/Li4M+y+jCnC
17
+
yptMScwcAJL5whkWVWrE8jtD6gjqqK+NKMkE4UI/4cRj1eB49uVuixhg5VQmEeG8
18
+
SdicfxOrnypdMthTCtxr1zoK4uRvd6XkysZUq+bneIvkykWp8IL4RA0gM4oKzFkC
19
+
gcEA0hXSYoJK2yxQBmSUB3KXbMO3Yg2WGw5m5EgXPIGMd0gwJ7ALzFsJRd7AvVO/
20
+
mlEpDkYAGWCYE94RiVN36S3XHl0jh6z2RXHZvCe5/l4Jwr0AnoL+AhPxOO6OwR5e
21
+
rnqwRYkbqI/sCsJXHKnQ5zUIgnVpgbTxdymoblM3lPcisPTxHTqCqKJ6mu97CVQk
22
+
OqmpqklDOyk/LOe/E2/wWDu1EdkD+a+BmWRadTzAv07dZ0Vq/m0gWp7iE+cG61V3
23
+
9HDnAoHBANqoiZHG4ROtXhih0qA3TXKJ99sMWflMh+vt2AD3n3S5YOBKh8EU7f9P
24
+
zE0nYpo5Qq0OkLom/Gwgp1JBiTlsDkeMSqOwwFQ9rCA8qCKMT68fcZ1LPW9loWDL
25
+
sA6Z1LpbvMs/pD1jWZV74jUt8ZmPNSsKvdmqsHXzrG4TQoEZGtopWyWdQSlGO5pY
26
+
q3qPA/EG+Asp2F3kzBFGd4Ax6xHU5mSm3OnAzqNhc26jNM8CTUG7KQad9SyrjegN
27
+
vA4jA7VC/QKBwC2cyUnUChad/13z9mPLkG7v61/hnUaQkOxdbpYXdnzrcnEbeuRK
28
+
m6/M1kIE7eO+XVCZCCp6W2ps25faRH2fE0anaDBr8ChRuLluUqaUmj/qszi3Lhkb
29
+
ZVM8EEiDpIDzaFQgmZ22acRIP4ucnxuj2w4gGeEsfQSnScdyT+4K3kBXXgY/juC4
30
+
LjB3cFotJ5SJA6pSL8Onh+zjAAxjUGaHyB9w47kRTu0T6cPshdjDcbSbUMievtiO
31
+
CH3Tuh/cNagf3wKBwQDPOXbXPyJEYcORmJti18aATJ0nbbc/evY99DUIBaWLG7zi
32
+
FABATrOXiWrXnAHoo2e7Vth2c0g6uV+Zpx6D2xJVYHHEXFiJ/cDI9HNr+onyL9ye
33
+
85WPo0Oj1qZN0CA5VYPBI9lljGh0MOoa+CXGIGCFIDL4vLlrr7m0wHAApWg7ZYJK
34
+
TZRZp4QJLQumpS9ZF/+vpMK3iYSUwrGyPpzHU3vd2/31UpMDZ/Hb4rTDkyzgpJ2m
35
+
9cBLy3I7f/i/dROoj4kCgcACSTKfxzg8sWORWu5amTGMOoTlSfJzgi0f//koqiFN
36
+
hqD77Srt23hzCqI2P7KniSwtLkyUFpW82Sq3TmkDkfiDJ4bywXjS6V9N/C3N7GGG
37
+
iDw9wVHZFLy/d0aTnnkXKre38IVC2L7bX2gDEVr3cEYuKfFHfn6S3eLxYlf/uVzW
38
+
vZYLaWra+fTpZn/TTsEu5Qf/By0jDqwmckBuaGQkpSUPVC6VCdJdkLj/P8KX/WEK
39
+
Z2CAgvzTduQVyoeY0sSM0dA=
40
+
-----END PRIVATE KEY-----
+27
config/dev/pki/dev.crt
+27
config/dev/pki/dev.crt
···
1
+
-----BEGIN CERTIFICATE-----
2
+
MIIEfjCCAuagAwIBAgIRAMooUps4l++//kLhRuQXNKIwDQYJKoZIhvcNAQELBQAw
3
+
gZUxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE1MDMGA1UECwwsaGF5
4
+
ZGVuQEhBWURFTi1XMTEubG9jYWxkb21haW4gKEhheWRlbiBZb3VuZykxPDA6BgNV
5
+
BAMMM21rY2VydCBoYXlkZW5ASEFZREVOLVcxMS5sb2NhbGRvbWFpbiAoSGF5ZGVu
6
+
IFlvdW5nKTAeFw0yNTExMjIyMjIzMThaFw0yODAyMjIyMjIzMThaMGAxJzAlBgNV
7
+
BAoTHm1rY2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTE1MDMGA1UECwwsaGF5
8
+
ZGVuQEhBWURFTi1XMTEubG9jYWxkb21haW4gKEhheWRlbiBZb3VuZykwggEiMA0G
9
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSkRNRv4sBJbigX3Xiekg2eBk5ivz5
10
+
tJ7VRPTYGCH2hqkyTvuiO44iX/CI0OKsDTxiCTzr2zaDQ6/bEAsK+NuIGUA7Lo81
11
+
MWsGphiEfyHGK5j0oI8Rg5c9Vh7InXaoAdouJ8JTZlnjLbSEv3l1fLcY+BBNBfvK
12
+
soF4KMhSyoXULsdnc5sTU1iXvhi0+330py7KYlW4KM1nb5ucQ7EYb/fWNmqmINTi
13
+
4agepceTvfV9/lkCGlwvAYUeYkiZsR2DM0j1zwiH7NVlitASjoUqP/IjzWqTd7xu
14
+
NeDTyy0srJmu/CYG8GBi/w1lNSk0WPpT6R3i76/RmRZqU4sApJVbaWkFAgMBAAGj
15
+
fTB7MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSME
16
+
GDAWgBSn6k5zuOdPYd2CIkwthJ52WCxtXzAzBgNVHREELDAqghJsb2NhbC5yZWNp
17
+
cGVzLmJsdWWCFCoubG9jYWwucmVjaXBlcy5ibHVlMA0GCSqGSIb3DQEBCwUAA4IB
18
+
gQArUayVybiyLqKslyikxMjg0W0OR6Vl3BOzcHuv0+MQYiU4RXZEy9gB158fRq/A
19
+
oYfGf0VMyP4GXCKDyJUfGiU/d1KQeu2skBK+SnZys6lV2pxtqnTxsJX18HI8bH3g
20
+
jPjP8iQTGk4izkzhP/IMtSO88gVu5YZkQuU/W3uCJEwjsQTwKCx+VbTI0+2iiVw4
21
+
6S8f5dbjRG5cWzRuNOq8YAG42/2wPEhUzxJXsFlxrRXSOP1FlGcJy0QQm6TQ85+l
22
+
D7sYHVKET2d181yWggT1KiKeGKm+pYkNgLKEHXAM0XGmlYAR01ibz2iotguYnz+z
23
+
NgD+rHerqcdIaRLDPUmNYUCbDRpKozT/X6HK9qB3OtGMLFd5nd1S6mS6NisdzZCY
24
+
s7WyCvnvMbExqpMnlX97UPcI0l0RUC/q/feQ+H2TqTD5QWszEvIO0JqEaREEgZ4p
25
+
A0ZMksO4ZDsKMX2eqDLEv+Td9nb/7Kw+ydCjAMDLV11o31WBF0ucA/dV7sdgYFCj
26
+
1NM=
27
+
-----END CERTIFICATE-----
+28
config/dev/pki/dev.key
+28
config/dev/pki/dev.key
···
1
+
-----BEGIN PRIVATE KEY-----
2
+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDSkRNRv4sBJbig
3
+
X3Xiekg2eBk5ivz5tJ7VRPTYGCH2hqkyTvuiO44iX/CI0OKsDTxiCTzr2zaDQ6/b
4
+
EAsK+NuIGUA7Lo81MWsGphiEfyHGK5j0oI8Rg5c9Vh7InXaoAdouJ8JTZlnjLbSE
5
+
v3l1fLcY+BBNBfvKsoF4KMhSyoXULsdnc5sTU1iXvhi0+330py7KYlW4KM1nb5uc
6
+
Q7EYb/fWNmqmINTi4agepceTvfV9/lkCGlwvAYUeYkiZsR2DM0j1zwiH7NVlitAS
7
+
joUqP/IjzWqTd7xuNeDTyy0srJmu/CYG8GBi/w1lNSk0WPpT6R3i76/RmRZqU4sA
8
+
pJVbaWkFAgMBAAECggEAagiYO/BCpV9Da67mhBejyZoMycdNwMjNuwOwcCkm4SfK
9
+
iATx/i4TUwgQ7jSSEKXRpGSWgwaumsc5BQ09IldS5WQhziuR/e1WwdBeREpozYwi
10
+
x/0aTm1/eWmmsstodw4HunpXBvxhg17+qmJpXVpiMXapbr/2nYnqXIHc7qQBZGkH
11
+
MnuDi6chGw0RBZhySLCHsyth5OHP16/SiV7Am6UaQyi4oG3W/RrVIRsIjoLPj0Hw
12
+
MSPhiv/yq4TIWb4ujnGgNhIcEGJN6tYKWUEdoMjWQwvWZKw1c3G1glfUQGUeS7fH
13
+
0U4XTtPS43j7d5iQoff0gfZwV8wZvUAaRgxfgc7+eQKBgQDTeF48lHbw9lrrMu9P
14
+
YfGiS90v9U25TpOq3qYUEPdwy9ssnTXPS/iJim/IW/B10F/AneqLWPWUawjaLxVF
15
+
tAxMiruE3L4pJfYtbF7x3bWz879fMItlatWIKSwinEXu1NeQMDaTy7P5u+H37+7c
16
+
nQm8KNtIVT29XYalK9pv5Hvg7wKBgQD+6ADj4LA25h0xTcjKBERStMPRESiFE1K7
17
+
ITzp2jvOO68ZKgWSN+8bKpLKQYj40Aivi7Nu22cqlpcZ7/7uETXb6xjVrEfteg3S
18
+
u7FUU9vuwX/0RCtbj8FlV1iaJXdq2XmnQLg2RESYFKc9vHaWdRJ/VCDkDCuNWns0
19
+
IVjlY7OtSwKBgDF/fy9W4PBN+cILzhAasOB4OXG8TVEOn2nja6ROxFxWmxq6QZog
20
+
AjDPgpK3UnWBLKh9TiUH0ZPH6e6IDsad+jMAVhwnPyuKgzDmqOKcLqfMagLx7e7z
21
+
LsAMQxRm18ercjmBz4SQrbPK0n2iX5qr91dfiNRJf4YPmjCXLy35oTVpAoGBAJBT
22
+
5mUgTEXZRwAqjZysi87UYOcYMvweM8KWkDnMgf5EVuEFpP/kQbL9CP4R2y8eAzz5
23
+
+Y+0FJbNiyJ5e7tp7Tfmxjn9gQBaEkeWVFJt5OIrl3pDutTt8U+jBBzLR/Esz6++
24
+
ek7nmnsNfp/6/J42DVIg3TqiFWrEp2ud0gqXyB0/AoGBAMj1p1uknmOoEoqfdJeI
25
+
UqbWE//107MXTAhydpn/iuUKUVw9SiBpmdgA+YZ0ufuPyxy+Uoc25LrLrvA4O7aP
26
+
hy4SJZ/7jq45AK6jPqzJo9FMjB32t5QyWkHlbvbasXA+5AHlriVjC58/EW60K/e3
27
+
Pth8LTDiTKFjWFJWXYkGLtFa
28
+
-----END PRIVATE KEY-----
+12
config/dev/redis/compose.yaml
+12
config/dev/redis/compose.yaml
+5
-34
docker-compose.yaml
+5
-34
docker-compose.yaml
···
1
1
---
2
-
services:
3
-
caddy:
4
-
image: caddy:2
5
-
restart: unless-stopped
6
-
cap_add:
7
-
- NET_ADMIN
8
-
ports:
9
-
- "80:80"
10
-
- "443:443"
11
-
- "443:443/udp"
12
-
volumes:
13
-
- ./Caddyfile:/etc/caddy/Caddyfile
14
-
- caddy_data:/data
15
-
- caddy_config:/config
16
-
extra_hosts:
17
-
- "host.docker.internal:host-gateway"
2
+
include:
3
+
- path: config/dev/db/compose.yaml
4
+
- path: config/dev/redis/compose.yaml
18
5
19
-
libsql:
20
-
image: ghcr.io/tursodatabase/libsql-server:latest
21
-
environment:
22
-
SQLD_NODE: primary
23
-
ports:
24
-
- 4001:8080
25
-
volumes:
26
-
- libsql:/var/lib/sqld
27
-
28
-
tunnel:
29
-
image: cloudflare/cloudflared
30
-
restart: unless-stopped
31
-
command: tunnel --url http://caddy
32
-
33
-
volumes:
34
-
caddy_data: {}
35
-
caddy_config: {}
36
-
libsql: {}
6
+
networks:
7
+
recipesblue:
-43
fly.toml
-43
fly.toml
···
1
-
app = "cookware"
2
-
primary_region = "lhr"
3
-
4
-
[build]
5
-
dockerfile = "Dockerfile"
6
-
[build.args]
7
-
VITE_API_SERVICE = "recipes.blue"
8
-
9
-
[processes]
10
-
web = "bash -c 'cd apps/api && node dist/index.js'"
11
-
ingester = "bash -c 'cd apps/ingester && node dist/index.js'"
12
-
13
-
[env]
14
-
CORS_ORIGINS = "https://recipes.blue,http://127.0.0.1:5173"
15
-
16
-
[deploy]
17
-
release_command = "bash -c 'cd libs/database && pnpm db:migrate'"
18
-
19
-
[[vm]]
20
-
size = "shared-cpu-1x"
21
-
memory = 256
22
-
processes = ["web"]
23
-
24
-
[[vm]]
25
-
size = "shared-cpu-1x"
26
-
memory = 256
27
-
processes = ["ingester"]
28
-
29
-
[[services]]
30
-
http_checks = []
31
-
processes = ["web"]
32
-
internal_port = 8080
33
-
[[services.ports]]
34
-
handlers = ["http"]
35
-
port = 80
36
-
force_https = true
37
-
[[services.ports]]
38
-
handlers = ["tls", "http"]
39
-
port = 443
40
-
41
-
[[statics]]
42
-
guest_path = "/usr/src/app/apps/web/dist"
43
-
url_prefix = "/"
-53
lexicons/app/bsky/actor/profile.json
-53
lexicons/app/bsky/actor/profile.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "app.bsky.actor.profile",
4
-
"defs": {
5
-
"main": {
6
-
"type": "record",
7
-
"description": "A declaration of a Bluesky account profile.",
8
-
"key": "literal:self",
9
-
"record": {
10
-
"type": "object",
11
-
"properties": {
12
-
"displayName": {
13
-
"type": "string",
14
-
"maxGraphemes": 64,
15
-
"maxLength": 640
16
-
},
17
-
"description": {
18
-
"type": "string",
19
-
"description": "Free-form profile description text.",
20
-
"maxGraphemes": 256,
21
-
"maxLength": 2560
22
-
},
23
-
"avatar": {
24
-
"type": "blob",
25
-
"description": "Small image to be displayed next to posts from account. AKA, 'profile picture'",
26
-
"accept": ["image/png", "image/jpeg"],
27
-
"maxSize": 1000000
28
-
},
29
-
"banner": {
30
-
"type": "blob",
31
-
"description": "Larger horizontal image to display behind profile view.",
32
-
"accept": ["image/png", "image/jpeg"],
33
-
"maxSize": 1000000
34
-
},
35
-
"labels": {
36
-
"type": "union",
37
-
"description": "Self-label values, specific to the Bluesky application, on the overall account.",
38
-
"refs": ["com.atproto.label.defs#selfLabels"]
39
-
},
40
-
"joinedViaStarterPack": {
41
-
"type": "ref",
42
-
"ref": "com.atproto.repo.strongRef"
43
-
},
44
-
"pinnedPost": {
45
-
"type": "ref",
46
-
"ref": "com.atproto.repo.strongRef"
47
-
},
48
-
"createdAt": { "type": "string", "format": "datetime" }
49
-
}
50
-
}
51
-
}
52
-
}
53
-
}
-43
lexicons/blue/recipes/feed/defs.json
-43
lexicons/blue/recipes/feed/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "blue.recipes.feed.defs",
4
-
"defs": {
5
-
"ingredient": {
6
-
"type": "object",
7
-
"properties": {
8
-
"name": {
9
-
"type": "string",
10
-
"maxLength": 3000,
11
-
"maxGraphemes": 300,
12
-
"description": "The name of the ingredient."
13
-
},
14
-
"amount": {
15
-
"type": "string",
16
-
"description": "How much of the ingredient is needed."
17
-
}
18
-
}
19
-
},
20
-
"step": {
21
-
"type": "object",
22
-
"required": ["text"],
23
-
"properties": {
24
-
"text": {
25
-
"type": "string",
26
-
"maxLength": 5000,
27
-
"maxGraphemes": 300,
28
-
"description": "The instruction to provide to the user."
29
-
}
30
-
}
31
-
},
32
-
"authorInfo": {
33
-
"type": "object",
34
-
"required": ["did", "handle"],
35
-
"properties": {
36
-
"did": { "type": "string" },
37
-
"handle": { "type": "string" },
38
-
"displayName": { "type": "string" },
39
-
"avatarUrl": { "type": "string" }
40
-
}
41
-
}
42
-
}
43
-
}
-61
lexicons/blue/recipes/feed/getRecipe.json
-61
lexicons/blue/recipes/feed/getRecipe.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "blue.recipes.feed.getRecipe",
4
-
"defs": {
5
-
"main": {
6
-
"type": "query",
7
-
"description": "Gets a recipe from the index by author DID and rkey.",
8
-
"parameters": {
9
-
"type": "params",
10
-
"required": ["did", "rkey"],
11
-
"properties": {
12
-
"did": {
13
-
"type": "string",
14
-
"format": "at-identifier"
15
-
},
16
-
"rkey": {
17
-
"type": "string"
18
-
}
19
-
}
20
-
},
21
-
"output": {
22
-
"encoding": "application/json",
23
-
"schema": {
24
-
"type": "object",
25
-
"required": ["recipe"],
26
-
"properties": {
27
-
"recipe": {
28
-
"type": "ref",
29
-
"ref": "#result"
30
-
}
31
-
}
32
-
}
33
-
}
34
-
},
35
-
"result": {
36
-
"type": "object",
37
-
"required": ["author", "title", "ingredients", "steps"],
38
-
"properties": {
39
-
"author": { "type": "ref", "ref": "blue.recipes.feed.defs#authorInfo" },
40
-
"title": { "type": "string" },
41
-
"description": { "type": "string" },
42
-
"time": { "type": "integer" },
43
-
"imageUrl": { "type": "string" },
44
-
"ingredients": {
45
-
"type": "array",
46
-
"items": {
47
-
"type": "ref",
48
-
"ref": "blue.recipes.feed.defs#ingredient"
49
-
}
50
-
},
51
-
"steps": {
52
-
"type": "array",
53
-
"items": {
54
-
"type": "ref",
55
-
"ref": "blue.recipes.feed.defs#step"
56
-
}
57
-
}
58
-
}
59
-
}
60
-
}
61
-
}
-58
lexicons/blue/recipes/feed/getRecipes.json
-58
lexicons/blue/recipes/feed/getRecipes.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "blue.recipes.feed.getRecipes",
4
-
"defs": {
5
-
"main": {
6
-
"type": "query",
7
-
"description": "Gets recipes from the index.",
8
-
"parameters": {
9
-
"type": "params",
10
-
"required": ["cursor"],
11
-
"properties": {
12
-
"cursor": {
13
-
"type": "string"
14
-
},
15
-
"did": {
16
-
"type": "string",
17
-
"format": "at-identifier"
18
-
}
19
-
}
20
-
},
21
-
"output": {
22
-
"encoding": "application/json",
23
-
"schema": {
24
-
"type": "object",
25
-
"required": ["recipes"],
26
-
"properties": {
27
-
"author": {
28
-
"type": "ref",
29
-
"ref": "blue.recipes.feed.defs#authorInfo"
30
-
},
31
-
"recipes": {
32
-
"type": "array",
33
-
"items": {
34
-
"type": "ref",
35
-
"ref": "#result"
36
-
}
37
-
}
38
-
}
39
-
}
40
-
}
41
-
},
42
-
"result": {
43
-
"type": "object",
44
-
"required": [ "rkey", "author", "title", "time", "ingredients", "steps"],
45
-
"properties": {
46
-
"rkey": { "type": "string" },
47
-
"author": { "type": "ref", "ref": "blue.recipes.feed.defs#authorInfo" },
48
-
"type": { "type": "string" },
49
-
"imageUrl": { "type": "string" },
50
-
"title": { "type": "string" },
51
-
"time": { "type": "integer" },
52
-
"description": { "type": "string" },
53
-
"ingredients": { "type": "integer" },
54
-
"steps": { "type": "integer" }
55
-
}
56
-
}
57
-
}
58
-
}
-53
lexicons/blue/recipes/feed/recipes.json
-53
lexicons/blue/recipes/feed/recipes.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "blue.recipes.feed.recipe",
4
-
"defs": {
5
-
"main": {
6
-
"type": "record",
7
-
"description": "Record containing a Cookware recipe.",
8
-
"key": "tid",
9
-
"record": {
10
-
"type": "object",
11
-
"required": ["title", "ingredients", "steps"],
12
-
"properties": {
13
-
"title": {
14
-
"type": "string",
15
-
"maxLength": 3000,
16
-
"maxGraphemes": 300,
17
-
"description": "The title of the recipe."
18
-
},
19
-
"description": {
20
-
"type": "string",
21
-
"maxLength": 3000,
22
-
"maxGraphemes": 300,
23
-
"description": "The description of the recipe."
24
-
},
25
-
"image": {
26
-
"type": "blob",
27
-
"description": "The recipe's cover image.",
28
-
"accept": ["image/*"],
29
-
"maxSize": 1000000
30
-
},
31
-
"time": {
32
-
"type": "integer",
33
-
"description": "The amount of time (in minutes) the recipe takes to complete."
34
-
},
35
-
"ingredients": {
36
-
"type": "array",
37
-
"items": {
38
-
"type": "ref",
39
-
"ref": "blue.recipes.feed.defs#ingredient"
40
-
}
41
-
},
42
-
"steps": {
43
-
"type": "array",
44
-
"items": {
45
-
"type": "ref",
46
-
"ref": "blue.recipes.feed.defs#step"
47
-
}
48
-
}
49
-
}
50
-
}
51
-
}
52
-
}
53
-
}
-156
lexicons/com/atproto/label/defs.json
-156
lexicons/com/atproto/label/defs.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "com.atproto.label.defs",
4
-
"defs": {
5
-
"label": {
6
-
"type": "object",
7
-
"description": "Metadata tag on an atproto resource (eg, repo or record).",
8
-
"required": ["src", "uri", "val", "cts"],
9
-
"properties": {
10
-
"ver": {
11
-
"type": "integer",
12
-
"description": "The AT Protocol version of the label object."
13
-
},
14
-
"src": {
15
-
"type": "string",
16
-
"format": "did",
17
-
"description": "DID of the actor who created this label."
18
-
},
19
-
"uri": {
20
-
"type": "string",
21
-
"format": "uri",
22
-
"description": "AT URI of the record, repository (account), or other resource that this label applies to."
23
-
},
24
-
"cid": {
25
-
"type": "string",
26
-
"format": "cid",
27
-
"description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
28
-
},
29
-
"val": {
30
-
"type": "string",
31
-
"maxLength": 128,
32
-
"description": "The short string name of the value or type of this label."
33
-
},
34
-
"neg": {
35
-
"type": "boolean",
36
-
"description": "If true, this is a negation label, overwriting a previous label."
37
-
},
38
-
"cts": {
39
-
"type": "string",
40
-
"format": "datetime",
41
-
"description": "Timestamp when this label was created."
42
-
},
43
-
"exp": {
44
-
"type": "string",
45
-
"format": "datetime",
46
-
"description": "Timestamp at which this label expires (no longer applies)."
47
-
},
48
-
"sig": {
49
-
"type": "bytes",
50
-
"description": "Signature of dag-cbor encoded label."
51
-
}
52
-
}
53
-
},
54
-
"selfLabels": {
55
-
"type": "object",
56
-
"description": "Metadata tags on an atproto record, published by the author within the record.",
57
-
"required": ["values"],
58
-
"properties": {
59
-
"values": {
60
-
"type": "array",
61
-
"items": { "type": "ref", "ref": "#selfLabel" },
62
-
"maxLength": 10
63
-
}
64
-
}
65
-
},
66
-
"selfLabel": {
67
-
"type": "object",
68
-
"description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.",
69
-
"required": ["val"],
70
-
"properties": {
71
-
"val": {
72
-
"type": "string",
73
-
"maxLength": 128,
74
-
"description": "The short string name of the value or type of this label."
75
-
}
76
-
}
77
-
},
78
-
"labelValueDefinition": {
79
-
"type": "object",
80
-
"description": "Declares a label value and its expected interpretations and behaviors.",
81
-
"required": ["identifier", "severity", "blurs", "locales"],
82
-
"properties": {
83
-
"identifier": {
84
-
"type": "string",
85
-
"description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
86
-
"maxLength": 100,
87
-
"maxGraphemes": 100
88
-
},
89
-
"severity": {
90
-
"type": "string",
91
-
"description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
92
-
"knownValues": ["inform", "alert", "none"]
93
-
},
94
-
"blurs": {
95
-
"type": "string",
96
-
"description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
97
-
"knownValues": ["content", "media", "none"]
98
-
},
99
-
"defaultSetting": {
100
-
"type": "string",
101
-
"description": "The default setting for this label.",
102
-
"knownValues": ["ignore", "warn", "hide"],
103
-
"default": "warn"
104
-
},
105
-
"adultOnly": {
106
-
"type": "boolean",
107
-
"description": "Does the user need to have adult content enabled in order to configure this label?"
108
-
},
109
-
"locales": {
110
-
"type": "array",
111
-
"items": { "type": "ref", "ref": "#labelValueDefinitionStrings" }
112
-
}
113
-
}
114
-
},
115
-
"labelValueDefinitionStrings": {
116
-
"type": "object",
117
-
"description": "Strings which describe the label in the UI, localized into a specific language.",
118
-
"required": ["lang", "name", "description"],
119
-
"properties": {
120
-
"lang": {
121
-
"type": "string",
122
-
"description": "The code of the language these strings are written in.",
123
-
"format": "language"
124
-
},
125
-
"name": {
126
-
"type": "string",
127
-
"description": "A short human-readable name for the label.",
128
-
"maxGraphemes": 64,
129
-
"maxLength": 640
130
-
},
131
-
"description": {
132
-
"type": "string",
133
-
"description": "A longer description of what the label means and why it might be applied.",
134
-
"maxGraphemes": 10000,
135
-
"maxLength": 100000
136
-
}
137
-
}
138
-
},
139
-
"labelValue": {
140
-
"type": "string",
141
-
"knownValues": [
142
-
"!hide",
143
-
"!no-promote",
144
-
"!warn",
145
-
"!no-unauthenticated",
146
-
"dmca-violation",
147
-
"doxxing",
148
-
"porn",
149
-
"sexual",
150
-
"nudity",
151
-
"nsfl",
152
-
"gore"
153
-
]
154
-
}
155
-
}
156
-
}
-15
lexicons/com/atproto/repo/strongRef.json
-15
lexicons/com/atproto/repo/strongRef.json
···
1
-
{
2
-
"lexicon": 1,
3
-
"id": "com.atproto.repo.strongRef",
4
-
"description": "A URI with a content-hash fingerprint.",
5
-
"defs": {
6
-
"main": {
7
-
"type": "object",
8
-
"required": ["uri", "cid"],
9
-
"properties": {
10
-
"uri": { "type": "string", "format": "at-uri" },
11
-
"cid": { "type": "string", "format": "cid" }
12
-
}
13
-
}
14
-
}
15
-
}
+4
-6
libs/database/drizzle.config.ts
+4
-6
libs/database/drizzle.config.ts
···
1
-
import env from './src/config';
2
1
import type { Config } from "drizzle-kit";
3
2
4
3
export default {
5
-
schema: "./src/schema.ts",
4
+
schema: "./lib/schema.ts",
6
5
out: "./migrations",
7
-
dialect: "turso",
6
+
dialect: "postgresql",
8
7
dbCredentials: {
9
-
url: env.TURSO_CONNECTION_URL,
10
-
authToken: env.TURSO_AUTH_TOKEN,
11
-
},
8
+
url: process.env.DATABASE_URL || 'postgres://postgres:postgres@localhost:5432/postgres',
9
+
}
12
10
} satisfies Config;
+12
libs/database/lib/index.ts
+12
libs/database/lib/index.ts
···
1
+
import { drizzle } from 'drizzle-orm/node-postgres';
2
+
import { Pool } from 'pg';
3
+
4
+
const pool = new Pool({
5
+
connectionString: process.env.DATABASE_URL || 'postgres://postgres:postgres@localhost:5432/postgres',
6
+
});
7
+
8
+
import * as schema from './schema.js';
9
+
export const db = drizzle(pool, { schema });
10
+
11
+
// Re-export drizzle-orm functions to ensure single instance
12
+
export { eq, and, or, desc, asc, sql } from 'drizzle-orm';
+114
libs/database/lib/schema.ts
+114
libs/database/lib/schema.ts
···
1
+
import { customType, index, integer, primaryKey, pgTable, text, jsonb, varchar } from "drizzle-orm/pg-core";
2
+
import { BlueRecipesFeedRecipe } from "@cookware/lexicons";
3
+
import { Cid, isCid, ResourceUri, type AtprotoDid } from "@atcute/lexicons/syntax";
4
+
import { Blob, LegacyBlob } from "@atcute/lexicons";
5
+
import { relations, sql, type SQL } from "drizzle-orm";
6
+
import { isBlob, isCidLink, isLegacyBlob } from "@atcute/lexicons/interfaces";
7
+
8
+
const dateIsoText = customType<{ data: Date; driverData: string }>({
9
+
dataType() {
10
+
return "text";
11
+
},
12
+
toDriver: (value) => value.toISOString(),
13
+
fromDriver: (value) => new Date(value),
14
+
});
15
+
16
+
const atBlob = customType<{ data: Blob | LegacyBlob; driverData: string; }>({
17
+
dataType() {
18
+
return "text";
19
+
},
20
+
toDriver: (value) => {
21
+
if (isLegacyBlob(value)) {
22
+
return `l:${value.cid}:${value.mimeType}`;
23
+
} else if (isBlob(value)) {
24
+
return `b:${value.ref.$link}:${value.mimeType}:${value.size}`;
25
+
} else {
26
+
throw new Error('Invalid blob value');
27
+
}
28
+
},
29
+
fromDriver: (value): Blob | LegacyBlob => {
30
+
if (typeof value !== 'string') throw new Error('Invalid blob ref data type');
31
+
var parts = value.split(':');
32
+
if (value.startsWith('l:')) {
33
+
if (parts.length !== 3) throw new Error('Invalid legacy blob ref format');
34
+
if (!isCid(parts[1]!)) throw new Error('Invalid CID in legacy blob ref');
35
+
return {
36
+
cid: parts[1]!,
37
+
mimeType: parts[2]!,
38
+
} as LegacyBlob;
39
+
} else if (value.startsWith('b:')) {
40
+
if (parts.length !== 4) throw new Error('Invalid blob ref format');
41
+
if (!isCidLink({ $link: parts[1] })) throw new Error('Invalid CID link in blob ref');
42
+
if (isNaN(parseInt(parts[3]!, 10))) throw new Error('Invalid size in blob ref');
43
+
44
+
return {
45
+
$type: 'blob',
46
+
mimeType: parts[2],
47
+
size: parseInt(parts[3]!),
48
+
ref: { $link: parts[1] }
49
+
} as Blob;
50
+
} else {
51
+
throw new Error('Invalid blob ref prefix');
52
+
}
53
+
},
54
+
});
55
+
56
+
export const profilesTable = pgTable("profiles", {
57
+
uri: text('uri')
58
+
.generatedAlwaysAs((): SQL => sql`'at://' || ${profilesTable.did} || '/blue.recipes.actor.profile/self'`)
59
+
.$type<ResourceUri>(),
60
+
61
+
cid: text("cid").$type<Cid>().notNull(),
62
+
did: text("did").$type<AtprotoDid>().notNull().primaryKey(),
63
+
ingestedAt: dateIsoText("ingested_at").notNull().default(sql`CURRENT_TIMESTAMP`),
64
+
65
+
displayName: varchar('display_name', { length: 640 }).notNull(),
66
+
description: varchar('description', { length: 2500 }),
67
+
pronouns: varchar('pronouns', { length: 200 }),
68
+
website: text('website'),
69
+
avatarRef: atBlob('avatar'),
70
+
bannerRef: atBlob('banner'),
71
+
createdAt: dateIsoText("created_at").notNull(),
72
+
}, t => ([
73
+
index('profiles_cid_idx').on(t.cid),
74
+
index('profiles_cat_idx').on(t.createdAt),
75
+
index('profiles_iat_idx').on(t.ingestedAt),
76
+
]));
77
+
78
+
export const recipeTable = pgTable("recipes", {
79
+
uri: text('uri')
80
+
.generatedAlwaysAs((): SQL => sql`'at://' || ${recipeTable.did} || '/blue.recipes.feed.recipe/' || ${recipeTable.rkey}`),
81
+
82
+
cid: text("cid").$type<Cid>().notNull(),
83
+
did: text("author_did")
84
+
.$type<AtprotoDid>()
85
+
.notNull()
86
+
.references(() => profilesTable.did, { onDelete: 'cascade' }),
87
+
rkey: text('rkey').notNull(),
88
+
89
+
imageRef: atBlob('image'),
90
+
91
+
title: text('title').notNull(),
92
+
time: integer('time').notNull().default(0),
93
+
serves: integer('serves'),
94
+
description: text('description'),
95
+
96
+
ingredients: jsonb('ingredients').$type<BlueRecipesFeedRecipe.Main['ingredients']>().notNull(),
97
+
ingredientsCount: integer('ingredients_count').generatedAlwaysAs((): SQL => sql`jsonb_array_length(${recipeTable.ingredients})`),
98
+
99
+
steps: jsonb('steps').$type<BlueRecipesFeedRecipe.Main['steps']>().notNull(),
100
+
stepsCount: integer('steps_count').generatedAlwaysAs((): SQL => sql`jsonb_array_length(${recipeTable.steps})`),
101
+
102
+
createdAt: dateIsoText("created_at").notNull(),
103
+
ingestedAt: dateIsoText("ingested_at").notNull().default(sql`CURRENT_TIMESTAMP`),
104
+
}, t => ([
105
+
index('recipes_title_idx').on(t.title),
106
+
index('recipes_cid_idx').on(t.cid),
107
+
index('recipes_cat_idx').on(t.createdAt),
108
+
index('recipes_iat_idx').on(t.ingestedAt),
109
+
primaryKey({ columns: [ t.did, t.rkey ] }),
110
+
]));
111
+
112
+
export const recipeTableRelations = relations(recipeTable, ({ one }) => ({
113
+
author: one(profilesTable, { fields: [recipeTable.did], references: [profilesTable.did] })
114
+
}));
-23
libs/database/migrations/0000_boring_tenebrous.sql
-23
libs/database/migrations/0000_boring_tenebrous.sql
···
1
-
CREATE TABLE `auth_session` (
2
-
`key` text PRIMARY KEY NOT NULL,
3
-
`session` text NOT NULL
4
-
);
5
-
--> statement-breakpoint
6
-
CREATE TABLE `auth_state` (
7
-
`key` text PRIMARY KEY NOT NULL,
8
-
`state` text NOT NULL
9
-
);
10
-
--> statement-breakpoint
11
-
CREATE TABLE `recipes` (
12
-
`id` integer PRIMARY KEY NOT NULL,
13
-
`rkey` text NOT NULL,
14
-
`title` text NOT NULL,
15
-
`description` text,
16
-
`ingredients` text NOT NULL,
17
-
`steps` text NOT NULL,
18
-
`created_at` text NOT NULL,
19
-
`author_did` text NOT NULL
20
-
);
21
-
--> statement-breakpoint
22
-
CREATE UNIQUE INDEX `recipes_id_unique` ON `recipes` (`id`);--> statement-breakpoint
23
-
CREATE UNIQUE INDEX `recipes_rkey_author_did_unique` ON `recipes` (`rkey`,`author_did`);
+46
libs/database/migrations/0000_young_hellcat.sql
+46
libs/database/migrations/0000_young_hellcat.sql
···
1
+
CREATE TABLE IF NOT EXISTS "profiles" (
2
+
"uri" text GENERATED ALWAYS AS ('at://' || "profiles"."did" || '/blue.recipes.actor.profile/self') STORED,
3
+
"cid" text NOT NULL,
4
+
"did" text PRIMARY KEY NOT NULL,
5
+
"ingested_at" text DEFAULT CURRENT_TIMESTAMP NOT NULL,
6
+
"display_name" varchar(640) NOT NULL,
7
+
"description" varchar(2500),
8
+
"pronouns" varchar(200),
9
+
"website" text,
10
+
"avatar" text,
11
+
"banner" text,
12
+
"created_at" text NOT NULL
13
+
);
14
+
--> statement-breakpoint
15
+
CREATE TABLE IF NOT EXISTS "recipes" (
16
+
"uri" text GENERATED ALWAYS AS ('at://' || "recipes"."author_did" || '/blue.recipes.feed.recipe/' || "recipes"."rkey") STORED,
17
+
"cid" text NOT NULL,
18
+
"author_did" text NOT NULL,
19
+
"rkey" text NOT NULL,
20
+
"image" text,
21
+
"title" text NOT NULL,
22
+
"time" integer DEFAULT 0 NOT NULL,
23
+
"serves" integer,
24
+
"description" text,
25
+
"ingredients" jsonb NOT NULL,
26
+
"ingredients_count" integer GENERATED ALWAYS AS (jsonb_array_length("recipes"."ingredients")) STORED,
27
+
"steps" jsonb NOT NULL,
28
+
"steps_count" integer GENERATED ALWAYS AS (jsonb_array_length("recipes"."steps")) STORED,
29
+
"created_at" text NOT NULL,
30
+
"ingested_at" text DEFAULT CURRENT_TIMESTAMP NOT NULL,
31
+
CONSTRAINT "recipes_author_did_rkey_pk" PRIMARY KEY("author_did","rkey")
32
+
);
33
+
--> statement-breakpoint
34
+
DO $$ BEGIN
35
+
ALTER TABLE "recipes" ADD CONSTRAINT "recipes_author_did_profiles_did_fk" FOREIGN KEY ("author_did") REFERENCES "public"."profiles"("did") ON DELETE cascade ON UPDATE no action;
36
+
EXCEPTION
37
+
WHEN duplicate_object THEN null;
38
+
END $$;
39
+
--> statement-breakpoint
40
+
CREATE INDEX IF NOT EXISTS "profiles_cid_idx" ON "profiles" USING btree ("cid");--> statement-breakpoint
41
+
CREATE INDEX IF NOT EXISTS "profiles_cat_idx" ON "profiles" USING btree ("created_at");--> statement-breakpoint
42
+
CREATE INDEX IF NOT EXISTS "profiles_iat_idx" ON "profiles" USING btree ("ingested_at");--> statement-breakpoint
43
+
CREATE INDEX IF NOT EXISTS "recipes_title_idx" ON "recipes" USING btree ("title");--> statement-breakpoint
44
+
CREATE INDEX IF NOT EXISTS "recipes_cid_idx" ON "recipes" USING btree ("cid");--> statement-breakpoint
45
+
CREATE INDEX IF NOT EXISTS "recipes_cat_idx" ON "recipes" USING btree ("created_at");--> statement-breakpoint
46
+
CREATE INDEX IF NOT EXISTS "recipes_iat_idx" ON "recipes" USING btree ("ingested_at");
-1
libs/database/migrations/0001_icy_killmonger.sql
-1
libs/database/migrations/0001_icy_killmonger.sql
···
1
-
ALTER TABLE `recipes` ADD `time` integer DEFAULT 0 NOT NULL;
+275
-74
libs/database/migrations/meta/0000_snapshot.json
+275
-74
libs/database/migrations/meta/0000_snapshot.json
···
1
1
{
2
-
"version": "6",
3
-
"dialect": "sqlite",
4
-
"id": "1c01d686-877c-426c-ac8a-31f47df9385d",
2
+
"id": "5d896b70-087b-421e-8d94-c100476cd926",
5
3
"prevId": "00000000-0000-0000-0000-000000000000",
4
+
"version": "7",
5
+
"dialect": "postgresql",
6
6
"tables": {
7
-
"auth_session": {
8
-
"name": "auth_session",
7
+
"public.profiles": {
8
+
"name": "profiles",
9
+
"schema": "",
9
10
"columns": {
10
-
"key": {
11
-
"name": "key",
11
+
"uri": {
12
+
"name": "uri",
13
+
"type": "text",
14
+
"primaryKey": false,
15
+
"notNull": false,
16
+
"generated": {
17
+
"as": "'at://' || \"profiles\".\"did\" || '/blue.recipes.actor.profile/self'",
18
+
"type": "stored"
19
+
}
20
+
},
21
+
"cid": {
22
+
"name": "cid",
23
+
"type": "text",
24
+
"primaryKey": false,
25
+
"notNull": true
26
+
},
27
+
"did": {
28
+
"name": "did",
12
29
"type": "text",
13
30
"primaryKey": true,
14
-
"notNull": true,
15
-
"autoincrement": false
31
+
"notNull": true
16
32
},
17
-
"session": {
18
-
"name": "session",
33
+
"ingested_at": {
34
+
"name": "ingested_at",
19
35
"type": "text",
20
36
"primaryKey": false,
21
37
"notNull": true,
22
-
"autoincrement": false
23
-
}
24
-
},
25
-
"indexes": {},
26
-
"foreignKeys": {},
27
-
"compositePrimaryKeys": {},
28
-
"uniqueConstraints": {},
29
-
"checkConstraints": {}
30
-
},
31
-
"auth_state": {
32
-
"name": "auth_state",
33
-
"columns": {
34
-
"key": {
35
-
"name": "key",
38
+
"default": "CURRENT_TIMESTAMP"
39
+
},
40
+
"display_name": {
41
+
"name": "display_name",
42
+
"type": "varchar(640)",
43
+
"primaryKey": false,
44
+
"notNull": true
45
+
},
46
+
"description": {
47
+
"name": "description",
48
+
"type": "varchar(2500)",
49
+
"primaryKey": false,
50
+
"notNull": false
51
+
},
52
+
"pronouns": {
53
+
"name": "pronouns",
54
+
"type": "varchar(200)",
55
+
"primaryKey": false,
56
+
"notNull": false
57
+
},
58
+
"website": {
59
+
"name": "website",
36
60
"type": "text",
37
-
"primaryKey": true,
38
-
"notNull": true,
39
-
"autoincrement": false
61
+
"primaryKey": false,
62
+
"notNull": false
63
+
},
64
+
"avatar": {
65
+
"name": "avatar",
66
+
"type": "text",
67
+
"primaryKey": false,
68
+
"notNull": false
69
+
},
70
+
"banner": {
71
+
"name": "banner",
72
+
"type": "text",
73
+
"primaryKey": false,
74
+
"notNull": false
40
75
},
41
-
"state": {
42
-
"name": "state",
76
+
"created_at": {
77
+
"name": "created_at",
43
78
"type": "text",
44
79
"primaryKey": false,
45
-
"notNull": true,
46
-
"autoincrement": false
80
+
"notNull": true
81
+
}
82
+
},
83
+
"indexes": {
84
+
"profiles_cid_idx": {
85
+
"name": "profiles_cid_idx",
86
+
"columns": [
87
+
{
88
+
"expression": "cid",
89
+
"isExpression": false,
90
+
"asc": true,
91
+
"nulls": "last"
92
+
}
93
+
],
94
+
"isUnique": false,
95
+
"concurrently": false,
96
+
"method": "btree",
97
+
"with": {}
98
+
},
99
+
"profiles_cat_idx": {
100
+
"name": "profiles_cat_idx",
101
+
"columns": [
102
+
{
103
+
"expression": "created_at",
104
+
"isExpression": false,
105
+
"asc": true,
106
+
"nulls": "last"
107
+
}
108
+
],
109
+
"isUnique": false,
110
+
"concurrently": false,
111
+
"method": "btree",
112
+
"with": {}
113
+
},
114
+
"profiles_iat_idx": {
115
+
"name": "profiles_iat_idx",
116
+
"columns": [
117
+
{
118
+
"expression": "ingested_at",
119
+
"isExpression": false,
120
+
"asc": true,
121
+
"nulls": "last"
122
+
}
123
+
],
124
+
"isUnique": false,
125
+
"concurrently": false,
126
+
"method": "btree",
127
+
"with": {}
47
128
}
48
129
},
49
-
"indexes": {},
50
130
"foreignKeys": {},
51
131
"compositePrimaryKeys": {},
52
132
"uniqueConstraints": {},
53
-
"checkConstraints": {}
133
+
"policies": {},
134
+
"checkConstraints": {},
135
+
"isRLSEnabled": false
54
136
},
55
-
"recipes": {
137
+
"public.recipes": {
56
138
"name": "recipes",
139
+
"schema": "",
57
140
"columns": {
58
-
"id": {
59
-
"name": "id",
60
-
"type": "integer",
61
-
"primaryKey": true,
62
-
"notNull": true,
63
-
"autoincrement": false
141
+
"uri": {
142
+
"name": "uri",
143
+
"type": "text",
144
+
"primaryKey": false,
145
+
"notNull": false,
146
+
"generated": {
147
+
"as": "'at://' || \"recipes\".\"author_did\" || '/blue.recipes.feed.recipe/' || \"recipes\".\"rkey\"",
148
+
"type": "stored"
149
+
}
150
+
},
151
+
"cid": {
152
+
"name": "cid",
153
+
"type": "text",
154
+
"primaryKey": false,
155
+
"notNull": true
156
+
},
157
+
"author_did": {
158
+
"name": "author_did",
159
+
"type": "text",
160
+
"primaryKey": false,
161
+
"notNull": true
64
162
},
65
163
"rkey": {
66
164
"name": "rkey",
67
165
"type": "text",
68
166
"primaryKey": false,
69
-
"notNull": true,
70
-
"autoincrement": false
167
+
"notNull": true
168
+
},
169
+
"image": {
170
+
"name": "image",
171
+
"type": "text",
172
+
"primaryKey": false,
173
+
"notNull": false
71
174
},
72
175
"title": {
73
176
"name": "title",
74
177
"type": "text",
75
178
"primaryKey": false,
179
+
"notNull": true
180
+
},
181
+
"time": {
182
+
"name": "time",
183
+
"type": "integer",
184
+
"primaryKey": false,
76
185
"notNull": true,
77
-
"autoincrement": false
186
+
"default": 0
187
+
},
188
+
"serves": {
189
+
"name": "serves",
190
+
"type": "integer",
191
+
"primaryKey": false,
192
+
"notNull": false
78
193
},
79
194
"description": {
80
195
"name": "description",
81
196
"type": "text",
82
197
"primaryKey": false,
83
-
"notNull": false,
84
-
"autoincrement": false
198
+
"notNull": false
85
199
},
86
200
"ingredients": {
87
201
"name": "ingredients",
88
-
"type": "text",
202
+
"type": "jsonb",
89
203
"primaryKey": false,
90
-
"notNull": true,
91
-
"autoincrement": false
204
+
"notNull": true
205
+
},
206
+
"ingredients_count": {
207
+
"name": "ingredients_count",
208
+
"type": "integer",
209
+
"primaryKey": false,
210
+
"notNull": false,
211
+
"generated": {
212
+
"as": "jsonb_array_length(\"recipes\".\"ingredients\")",
213
+
"type": "stored"
214
+
}
92
215
},
93
216
"steps": {
94
217
"name": "steps",
95
-
"type": "text",
218
+
"type": "jsonb",
96
219
"primaryKey": false,
97
-
"notNull": true,
98
-
"autoincrement": false
220
+
"notNull": true
221
+
},
222
+
"steps_count": {
223
+
"name": "steps_count",
224
+
"type": "integer",
225
+
"primaryKey": false,
226
+
"notNull": false,
227
+
"generated": {
228
+
"as": "jsonb_array_length(\"recipes\".\"steps\")",
229
+
"type": "stored"
230
+
}
99
231
},
100
232
"created_at": {
101
233
"name": "created_at",
102
234
"type": "text",
103
235
"primaryKey": false,
104
-
"notNull": true,
105
-
"autoincrement": false
236
+
"notNull": true
106
237
},
107
-
"author_did": {
108
-
"name": "author_did",
238
+
"ingested_at": {
239
+
"name": "ingested_at",
109
240
"type": "text",
110
241
"primaryKey": false,
111
242
"notNull": true,
112
-
"autoincrement": false
243
+
"default": "CURRENT_TIMESTAMP"
113
244
}
114
245
},
115
246
"indexes": {
116
-
"recipes_id_unique": {
117
-
"name": "recipes_id_unique",
247
+
"recipes_title_idx": {
248
+
"name": "recipes_title_idx",
118
249
"columns": [
119
-
"id"
250
+
{
251
+
"expression": "title",
252
+
"isExpression": false,
253
+
"asc": true,
254
+
"nulls": "last"
255
+
}
120
256
],
121
-
"isUnique": true
257
+
"isUnique": false,
258
+
"concurrently": false,
259
+
"method": "btree",
260
+
"with": {}
122
261
},
123
-
"recipes_rkey_author_did_unique": {
124
-
"name": "recipes_rkey_author_did_unique",
262
+
"recipes_cid_idx": {
263
+
"name": "recipes_cid_idx",
125
264
"columns": [
126
-
"rkey",
265
+
{
266
+
"expression": "cid",
267
+
"isExpression": false,
268
+
"asc": true,
269
+
"nulls": "last"
270
+
}
271
+
],
272
+
"isUnique": false,
273
+
"concurrently": false,
274
+
"method": "btree",
275
+
"with": {}
276
+
},
277
+
"recipes_cat_idx": {
278
+
"name": "recipes_cat_idx",
279
+
"columns": [
280
+
{
281
+
"expression": "created_at",
282
+
"isExpression": false,
283
+
"asc": true,
284
+
"nulls": "last"
285
+
}
286
+
],
287
+
"isUnique": false,
288
+
"concurrently": false,
289
+
"method": "btree",
290
+
"with": {}
291
+
},
292
+
"recipes_iat_idx": {
293
+
"name": "recipes_iat_idx",
294
+
"columns": [
295
+
{
296
+
"expression": "ingested_at",
297
+
"isExpression": false,
298
+
"asc": true,
299
+
"nulls": "last"
300
+
}
301
+
],
302
+
"isUnique": false,
303
+
"concurrently": false,
304
+
"method": "btree",
305
+
"with": {}
306
+
}
307
+
},
308
+
"foreignKeys": {
309
+
"recipes_author_did_profiles_did_fk": {
310
+
"name": "recipes_author_did_profiles_did_fk",
311
+
"tableFrom": "recipes",
312
+
"tableTo": "profiles",
313
+
"columnsFrom": [
127
314
"author_did"
128
315
],
129
-
"isUnique": true
316
+
"columnsTo": [
317
+
"did"
318
+
],
319
+
"onDelete": "cascade",
320
+
"onUpdate": "no action"
321
+
}
322
+
},
323
+
"compositePrimaryKeys": {
324
+
"recipes_author_did_rkey_pk": {
325
+
"name": "recipes_author_did_rkey_pk",
326
+
"columns": [
327
+
"author_did",
328
+
"rkey"
329
+
]
130
330
}
131
331
},
132
-
"foreignKeys": {},
133
-
"compositePrimaryKeys": {},
134
332
"uniqueConstraints": {},
135
-
"checkConstraints": {}
333
+
"policies": {},
334
+
"checkConstraints": {},
335
+
"isRLSEnabled": false
136
336
}
137
337
},
338
+
"enums": {},
339
+
"schemas": {},
340
+
"sequences": {},
341
+
"roles": {},
342
+
"policies": {},
138
343
"views": {},
139
-
"enums": {},
140
344
"_meta": {
345
+
"columns": {},
141
346
"schemas": {},
142
-
"tables": {},
143
-
"columns": {}
144
-
},
145
-
"internal": {
146
-
"indexes": {}
347
+
"tables": {}
147
348
}
148
349
}
-156
libs/database/migrations/meta/0001_snapshot.json
-156
libs/database/migrations/meta/0001_snapshot.json
···
1
-
{
2
-
"version": "6",
3
-
"dialect": "sqlite",
4
-
"id": "2c6fca6c-38c3-4482-b189-6defabb5f8c8",
5
-
"prevId": "1c01d686-877c-426c-ac8a-31f47df9385d",
6
-
"tables": {
7
-
"auth_session": {
8
-
"name": "auth_session",
9
-
"columns": {
10
-
"key": {
11
-
"name": "key",
12
-
"type": "text",
13
-
"primaryKey": true,
14
-
"notNull": true,
15
-
"autoincrement": false
16
-
},
17
-
"session": {
18
-
"name": "session",
19
-
"type": "text",
20
-
"primaryKey": false,
21
-
"notNull": true,
22
-
"autoincrement": false
23
-
}
24
-
},
25
-
"indexes": {},
26
-
"foreignKeys": {},
27
-
"compositePrimaryKeys": {},
28
-
"uniqueConstraints": {},
29
-
"checkConstraints": {}
30
-
},
31
-
"auth_state": {
32
-
"name": "auth_state",
33
-
"columns": {
34
-
"key": {
35
-
"name": "key",
36
-
"type": "text",
37
-
"primaryKey": true,
38
-
"notNull": true,
39
-
"autoincrement": false
40
-
},
41
-
"state": {
42
-
"name": "state",
43
-
"type": "text",
44
-
"primaryKey": false,
45
-
"notNull": true,
46
-
"autoincrement": false
47
-
}
48
-
},
49
-
"indexes": {},
50
-
"foreignKeys": {},
51
-
"compositePrimaryKeys": {},
52
-
"uniqueConstraints": {},
53
-
"checkConstraints": {}
54
-
},
55
-
"recipes": {
56
-
"name": "recipes",
57
-
"columns": {
58
-
"id": {
59
-
"name": "id",
60
-
"type": "integer",
61
-
"primaryKey": true,
62
-
"notNull": true,
63
-
"autoincrement": false
64
-
},
65
-
"rkey": {
66
-
"name": "rkey",
67
-
"type": "text",
68
-
"primaryKey": false,
69
-
"notNull": true,
70
-
"autoincrement": false
71
-
},
72
-
"title": {
73
-
"name": "title",
74
-
"type": "text",
75
-
"primaryKey": false,
76
-
"notNull": true,
77
-
"autoincrement": false
78
-
},
79
-
"time": {
80
-
"name": "time",
81
-
"type": "integer",
82
-
"primaryKey": false,
83
-
"notNull": true,
84
-
"autoincrement": false,
85
-
"default": 0
86
-
},
87
-
"description": {
88
-
"name": "description",
89
-
"type": "text",
90
-
"primaryKey": false,
91
-
"notNull": false,
92
-
"autoincrement": false
93
-
},
94
-
"ingredients": {
95
-
"name": "ingredients",
96
-
"type": "text",
97
-
"primaryKey": false,
98
-
"notNull": true,
99
-
"autoincrement": false
100
-
},
101
-
"steps": {
102
-
"name": "steps",
103
-
"type": "text",
104
-
"primaryKey": false,
105
-
"notNull": true,
106
-
"autoincrement": false
107
-
},
108
-
"created_at": {
109
-
"name": "created_at",
110
-
"type": "text",
111
-
"primaryKey": false,
112
-
"notNull": true,
113
-
"autoincrement": false
114
-
},
115
-
"author_did": {
116
-
"name": "author_did",
117
-
"type": "text",
118
-
"primaryKey": false,
119
-
"notNull": true,
120
-
"autoincrement": false
121
-
}
122
-
},
123
-
"indexes": {
124
-
"recipes_id_unique": {
125
-
"name": "recipes_id_unique",
126
-
"columns": [
127
-
"id"
128
-
],
129
-
"isUnique": true
130
-
},
131
-
"recipes_rkey_author_did_unique": {
132
-
"name": "recipes_rkey_author_did_unique",
133
-
"columns": [
134
-
"rkey",
135
-
"author_did"
136
-
],
137
-
"isUnique": true
138
-
}
139
-
},
140
-
"foreignKeys": {},
141
-
"compositePrimaryKeys": {},
142
-
"uniqueConstraints": {},
143
-
"checkConstraints": {}
144
-
}
145
-
},
146
-
"views": {},
147
-
"enums": {},
148
-
"_meta": {
149
-
"schemas": {},
150
-
"tables": {},
151
-
"columns": {}
152
-
},
153
-
"internal": {
154
-
"indexes": {}
155
-
}
156
-
}
+4
-11
libs/database/migrations/meta/_journal.json
+4
-11
libs/database/migrations/meta/_journal.json
···
1
1
{
2
2
"version": "7",
3
-
"dialect": "sqlite",
3
+
"dialect": "postgresql",
4
4
"entries": [
5
5
{
6
6
"idx": 0,
7
-
"version": "6",
8
-
"when": 1733683012154,
9
-
"tag": "0000_boring_tenebrous",
10
-
"breakpoints": true
11
-
},
12
-
{
13
-
"idx": 1,
14
-
"version": "6",
15
-
"when": 1734630004978,
16
-
"tag": "0001_icy_killmonger",
7
+
"version": "7",
8
+
"when": 1764420650497,
9
+
"tag": "0000_young_hellcat",
17
10
"breakpoints": true
18
11
}
19
12
]
+20
-7
libs/database/package.json
+20
-7
libs/database/package.json
···
1
1
{
2
+
"type": "module",
2
3
"name": "@cookware/database",
3
4
"version": "0.0.0",
4
5
"private": true,
5
-
"main": "dist/index.js",
6
-
"type": "module",
6
+
"files": [
7
+
"dist/",
8
+
"lib/",
9
+
"!lib/**/*.bench.ts",
10
+
"!lib/**/*.test.ts"
11
+
],
12
+
"exports": {
13
+
".": "./dist/index.js",
14
+
"./schema": "./dist/schema.js"
15
+
},
7
16
"scripts": {
8
-
"dev": "tsc --watch",
9
-
"build": "tsc",
17
+
"dev": "tsc --watch --project tsconfig.build.json",
18
+
"build": "tsc --project tsconfig.build.json",
10
19
"db:generate": "drizzle-kit generate",
11
20
"db:migrate": "drizzle-kit migrate",
12
21
"db:studio": "drizzle-kit studio"
13
22
},
14
23
"devDependencies": {
24
+
"@atcute/lexicons": "catalog:",
15
25
"@atproto/oauth-client-node": "^0.2.3",
16
-
"@cookware/lexicons": "workspace:^",
26
+
"@cookware/lexicons": "workspace:*",
17
27
"@cookware/tsconfig": "workspace:*",
28
+
"@types/bun": "catalog:",
18
29
"@types/node": "^22.10.1",
30
+
"@types/pg": "^8.15.6",
19
31
"drizzle-kit": "^0.29.0",
20
32
"typescript": "^5.2.2"
21
33
},
22
34
"dependencies": {
23
-
"@libsql/client": "^0.14.0",
24
-
"drizzle-orm": "^0.37.0",
35
+
"@libsql/client": "^0.15.15",
36
+
"drizzle-orm": "catalog:",
37
+
"pg": "^8.16.3",
25
38
"zod": "^3.23.8"
26
39
}
27
40
}
-18
libs/database/src/config.ts
-18
libs/database/src/config.ts
···
1
-
import { z } from "zod";
2
-
3
-
const envSchema = z.object({
4
-
TURSO_CONNECTION_URL: z.string().default('https://turso.dev.hayden.moe'),
5
-
TURSO_AUTH_TOKEN: z.string().or(z.undefined()),
6
-
7
-
ENV: z
8
-
.union([
9
-
z.literal('development'),
10
-
z.literal('production'),
11
-
])
12
-
.default('development'),
13
-
});
14
-
15
-
const env = envSchema.parse(process.env);
16
-
17
-
export default env;
18
-
export type Env = z.infer<typeof envSchema>;
-11
libs/database/src/database.ts
-11
libs/database/src/database.ts
···
1
-
import { drizzle } from "drizzle-orm/libsql";
2
-
import { createClient } from "@libsql/client";
3
-
import * as schema from "./schema.js";
4
-
import env from "./config.js";
5
-
6
-
const client = createClient({
7
-
url: env.TURSO_CONNECTION_URL,
8
-
authToken: env.TURSO_AUTH_TOKEN,
9
-
});
10
-
11
-
export const db = drizzle(client, { schema });
-2
libs/database/src/index.ts
-2
libs/database/src/index.ts
-42
libs/database/src/schema.ts
-42
libs/database/src/schema.ts
···
1
-
import { customType, int, sqliteTable, text, unique } from "drizzle-orm/sqlite-core";
2
-
import { DID } from "@cookware/lexicons";
3
-
import { Ingredient, Step } from "@cookware/lexicons";
4
-
import { NodeSavedSession, NodeSavedState } from "@atproto/oauth-client-node";
5
-
6
-
const did = customType<{ data: DID }>({
7
-
dataType() {
8
-
return "text";
9
-
},
10
-
});
11
-
12
-
const dateIsoText = customType<{ data: Date; driverData: string }>({
13
-
dataType() {
14
-
return "text";
15
-
},
16
-
toDriver: (value) => value.toISOString(),
17
-
fromDriver: (value) => new Date(value),
18
-
});
19
-
20
-
export const recipeTable = sqliteTable("recipes", {
21
-
id: int('id').primaryKey().notNull().unique(),
22
-
rkey: text('rkey').notNull(),
23
-
title: text('title').notNull(),
24
-
time: int('time').notNull().default(0),
25
-
description: text('description'),
26
-
ingredients: text('ingredients', { mode: 'json' }).$type<Partial<Ingredient>[]>().notNull(),
27
-
steps: text('steps', { mode: 'json' }).$type<Partial<Step>[]>().notNull(),
28
-
createdAt: dateIsoText("created_at").notNull(),
29
-
authorDid: did("author_did").notNull(),
30
-
}, t => ({
31
-
unique_author_rkey: unique().on(t.rkey, t.authorDid),
32
-
}));
33
-
34
-
export const authStateTable = sqliteTable("auth_state", {
35
-
key: text().primaryKey(),
36
-
state: text({ mode: 'json' }).$type<NodeSavedState>().notNull(),
37
-
});
38
-
39
-
export const authSessionTable = sqliteTable("auth_session", {
40
-
key: text().primaryKey(),
41
-
session: text({ mode: 'json' }).$type<NodeSavedSession>().notNull(),
42
-
});
+8
libs/database/tsconfig.build.json
+8
libs/database/tsconfig.build.json
+2
-3
libs/database/tsconfig.json
+2
-3
libs/database/tsconfig.json
+1
libs/lexicons/.gitignore
+1
libs/lexicons/.gitignore
···
1
+
tsp-output
+7
libs/lexicons/lex.config.ts
+7
libs/lexicons/lex.config.ts
+20
libs/lexicons/lexicons/feed/defs.tsp
+20
libs/lexicons/lexicons/feed/defs.tsp
···
1
+
import "@typelex/emitter";
2
+
import "../profiles";
3
+
4
+
namespace blue.recipes.feed.defs {
5
+
/** Response model for fetching multiple recipes. */
6
+
model RecipeView {
7
+
@required uri: atUri;
8
+
@required cid: cid;
9
+
@required rkey: string;
10
+
imageUrl?: url;
11
+
@required author: blue.recipes.actor.defs.ProfileViewBasic;
12
+
@required record: blue.recipes.feed.recipe.Main;
13
+
@required indexedAt: datetime;
14
+
}
15
+
16
+
model NotFoundRecipe {
17
+
@required uri: atUri;
18
+
@readOnly @required notFound: boolean = true;
19
+
}
20
+
}
+16
libs/lexicons/lexicons/feed/getRecipe.tsp
+16
libs/lexicons/lexicons/feed/getRecipe.tsp
···
1
+
import "@typelex/emitter";
2
+
import "./defs.tsp";
3
+
4
+
namespace blue.recipes.feed.getRecipe {
5
+
/** Response model for fetching multiple recipes. */
6
+
@query
7
+
@errors(NotFound, InvalidUri)
8
+
op main(
9
+
@required uris: atUri[],
10
+
): {
11
+
@required recipes: blue.recipes.feed.defs.RecipeView[];
12
+
};
13
+
14
+
@error model NotFound {}
15
+
@error model InvalidUri {}
16
+
}
+15
libs/lexicons/lexicons/feed/getRecipes.tsp
+15
libs/lexicons/lexicons/feed/getRecipes.tsp
···
1
+
import "@typelex/emitter";
2
+
import "./defs.tsp";
3
+
4
+
namespace blue.recipes.feed.getRecipes {
5
+
/** Response model for fetching multiple recipes. */
6
+
@query
7
+
op main(
8
+
author?: atIdentifier,
9
+
@minValue(1) @maxValue(100) limit?: integer = 50,
10
+
cursor?: string,
11
+
): {
12
+
@required recipes: blue.recipes.feed.defs.RecipeView[];
13
+
@required nextCursor: string;
14
+
};
15
+
}
+4
libs/lexicons/lexicons/feed/main.tsp
+4
libs/lexicons/lexicons/feed/main.tsp
+48
libs/lexicons/lexicons/feed/recipe.tsp
+48
libs/lexicons/lexicons/feed/recipe.tsp
···
1
+
import "@typelex/emitter";
2
+
3
+
namespace blue.recipes.feed.recipe {
4
+
/** Record containing a recipe. */
5
+
@rec("tid")
6
+
model Main {
7
+
@maxGraphemes(300)
8
+
@maxLength(3000)
9
+
@required title: string;
10
+
11
+
/** Free-form recipe description text. */
12
+
@maxGraphemes(300)
13
+
@maxLength(3000)
14
+
description?: string;
15
+
16
+
/** Image representing the recipe. */
17
+
image?: Blob<#["image/png", "image/jpeg"], 1000000>; // 1mb image
18
+
19
+
/** The amount of time (in minutes) it takes to complete the recipe. */
20
+
time?: integer;
21
+
22
+
/** The number of servings the recipe prepares. */
23
+
serves?: integer;
24
+
25
+
@required steps: Step[];
26
+
@required ingredients: Ingredient[];
27
+
28
+
@format("datetime")
29
+
createdAt?: string;
30
+
}
31
+
32
+
model Ingredient {
33
+
/** The name of the ingredient. */
34
+
@maxLength(3000)
35
+
@maxGraphemes(300)
36
+
@required name: string;
37
+
38
+
/** The amount of the ingredient needed. */
39
+
amount?: string;
40
+
}
41
+
42
+
model Step {
43
+
/** The instruction to provide to the user. */
44
+
@maxLength(5000)
45
+
@maxGraphemes(500)
46
+
@required text: string;
47
+
}
48
+
}
+41
libs/lexicons/lexicons/profiles/defs.tsp
+41
libs/lexicons/lexicons/profiles/defs.tsp
···
1
+
import "@typelex/emitter";
2
+
3
+
namespace blue.recipes.actor.defs {
4
+
model ProfileViewBasic {
5
+
@required did: did;
6
+
@required handle: handle;
7
+
8
+
@maxGraphemes(64)
9
+
@maxLength(640)
10
+
displayName?: string;
11
+
12
+
pronouns?: string;
13
+
avatar?: url;
14
+
15
+
@format("datetime")
16
+
createdAt?: string;
17
+
}
18
+
19
+
model ProfileViewDetailed {
20
+
@required did: did;
21
+
@required handle: handle;
22
+
23
+
@maxGraphemes(64)
24
+
@maxLength(640)
25
+
displayName?: string;
26
+
27
+
@maxGraphemes(256)
28
+
@maxLength(2500)
29
+
description?: string;
30
+
31
+
pronouns?: string;
32
+
website?: url;
33
+
avatar?: url;
34
+
banner?: url;
35
+
36
+
recipesCount?: integer;
37
+
38
+
@format("datetime")
39
+
createdAt?: string;
40
+
}
41
+
}
+9
libs/lexicons/lexicons/profiles/getProfile.tsp
+9
libs/lexicons/lexicons/profiles/getProfile.tsp
+3
libs/lexicons/lexicons/profiles/main.tsp
+3
libs/lexicons/lexicons/profiles/main.tsp
+31
libs/lexicons/lexicons/profiles/profile.tsp
+31
libs/lexicons/lexicons/profiles/profile.tsp
···
1
+
import "@typelex/emitter";
2
+
3
+
namespace blue.recipes.actor.profile {
4
+
@rec("literal:self")
5
+
model Main {
6
+
@maxGraphemes(64)
7
+
@maxLength(640)
8
+
@required displayName: string;
9
+
10
+
/** Free-form profile description text. */
11
+
@maxGraphemes(256)
12
+
@maxLength(2500)
13
+
description?: string;
14
+
15
+
/** Free-form text to describe pronouns. */
16
+
@maxGraphemes(20)
17
+
@maxLength(200)
18
+
pronouns?: string;
19
+
20
+
website?: uri;
21
+
22
+
/** Small image to be displayed on the profile. */
23
+
avatar?: Blob<#["image/png", "image/jpeg"], 1000000>; // 1mb image
24
+
25
+
/** Larger header image to be displayed on the profile. */
26
+
banner?: Blob<#["image/png", "image/jpeg"], 1000000>; // 1mb image
27
+
28
+
@format("datetime")
29
+
createdAt?: string;
30
+
}
31
+
}
+7
libs/lexicons/lib/index.ts
+7
libs/lexicons/lib/index.ts
···
1
+
export * as BlueRecipesActorDefs from "./types/blue/recipes/actor/defs.js";
2
+
export * as BlueRecipesActorGetProfile from "./types/blue/recipes/actor/getProfile.js";
3
+
export * as BlueRecipesActorProfile from "./types/blue/recipes/actor/profile.js";
4
+
export * as BlueRecipesFeedDefs from "./types/blue/recipes/feed/defs.js";
5
+
export * as BlueRecipesFeedGetRecipe from "./types/blue/recipes/feed/getRecipe.js";
6
+
export * as BlueRecipesFeedGetRecipes from "./types/blue/recipes/feed/getRecipes.js";
7
+
export * as BlueRecipesFeedRecipe from "./types/blue/recipes/feed/recipe.js";
+73
libs/lexicons/lib/types/blue/recipes/actor/defs.ts
+73
libs/lexicons/lib/types/blue/recipes/actor/defs.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
4
+
const _profileViewBasicSchema = /*#__PURE__*/ v.object({
5
+
$type: /*#__PURE__*/ v.optional(
6
+
/*#__PURE__*/ v.literal("blue.recipes.actor.defs#profileViewBasic"),
7
+
),
8
+
avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
9
+
createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
10
+
did: /*#__PURE__*/ v.didString(),
11
+
/**
12
+
* @maxLength 640
13
+
* @maxGraphemes 64
14
+
*/
15
+
displayName: /*#__PURE__*/ v.optional(
16
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
17
+
/*#__PURE__*/ v.stringLength(0, 640),
18
+
/*#__PURE__*/ v.stringGraphemes(0, 64),
19
+
]),
20
+
),
21
+
handle: /*#__PURE__*/ v.handleString(),
22
+
pronouns: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
23
+
});
24
+
const _profileViewDetailedSchema = /*#__PURE__*/ v.object({
25
+
$type: /*#__PURE__*/ v.optional(
26
+
/*#__PURE__*/ v.literal("blue.recipes.actor.defs#profileViewDetailed"),
27
+
),
28
+
avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
29
+
banner: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
30
+
createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
31
+
/**
32
+
* @maxLength 2500
33
+
* @maxGraphemes 256
34
+
*/
35
+
description: /*#__PURE__*/ v.optional(
36
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
37
+
/*#__PURE__*/ v.stringLength(0, 2500),
38
+
/*#__PURE__*/ v.stringGraphemes(0, 256),
39
+
]),
40
+
),
41
+
did: /*#__PURE__*/ v.didString(),
42
+
/**
43
+
* @maxLength 640
44
+
* @maxGraphemes 64
45
+
*/
46
+
displayName: /*#__PURE__*/ v.optional(
47
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
48
+
/*#__PURE__*/ v.stringLength(0, 640),
49
+
/*#__PURE__*/ v.stringGraphemes(0, 64),
50
+
]),
51
+
),
52
+
handle: /*#__PURE__*/ v.handleString(),
53
+
pronouns: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
54
+
recipesCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()),
55
+
website: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
56
+
});
57
+
58
+
type profileViewBasic$schematype = typeof _profileViewBasicSchema;
59
+
type profileViewDetailed$schematype = typeof _profileViewDetailedSchema;
60
+
61
+
export interface profileViewBasicSchema extends profileViewBasic$schematype {}
62
+
export interface profileViewDetailedSchema
63
+
extends profileViewDetailed$schematype {}
64
+
65
+
export const profileViewBasicSchema =
66
+
_profileViewBasicSchema as profileViewBasicSchema;
67
+
export const profileViewDetailedSchema =
68
+
_profileViewDetailedSchema as profileViewDetailedSchema;
69
+
70
+
export interface ProfileViewBasic
71
+
extends v.InferInput<typeof profileViewBasicSchema> {}
72
+
export interface ProfileViewDetailed
73
+
extends v.InferInput<typeof profileViewDetailedSchema> {}
+31
libs/lexicons/lib/types/blue/recipes/actor/getProfile.ts
+31
libs/lexicons/lib/types/blue/recipes/actor/getProfile.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
import type {} from "@atcute/lexicons/ambient";
4
+
import * as BlueRecipesActorDefs from "./defs.js";
5
+
6
+
const _mainSchema = /*#__PURE__*/ v.query("blue.recipes.actor.getProfile", {
7
+
params: /*#__PURE__*/ v.object({
8
+
actor: /*#__PURE__*/ v.actorIdentifierString(),
9
+
}),
10
+
output: {
11
+
type: "lex",
12
+
get schema() {
13
+
return BlueRecipesActorDefs.profileViewDetailedSchema;
14
+
},
15
+
},
16
+
});
17
+
18
+
type main$schematype = typeof _mainSchema;
19
+
20
+
export interface mainSchema extends main$schematype {}
21
+
22
+
export const mainSchema = _mainSchema as mainSchema;
23
+
24
+
export interface $params extends v.InferInput<mainSchema["params"]> {}
25
+
export type $output = v.InferXRPCBodyInput<mainSchema["output"]>;
26
+
27
+
declare module "@atcute/lexicons/ambient" {
28
+
interface XRPCQueries {
29
+
"blue.recipes.actor.getProfile": mainSchema;
30
+
}
31
+
}
+68
libs/lexicons/lib/types/blue/recipes/actor/profile.ts
+68
libs/lexicons/lib/types/blue/recipes/actor/profile.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
import type {} from "@atcute/lexicons/ambient";
4
+
5
+
const _mainSchema = /*#__PURE__*/ v.record(
6
+
/*#__PURE__*/ v.literal("self"),
7
+
/*#__PURE__*/ v.object({
8
+
$type: /*#__PURE__*/ v.literal("blue.recipes.actor.profile"),
9
+
/**
10
+
* Small image to be displayed on the profile.
11
+
* @accept image/png, image/jpeg
12
+
* @maxSize 1000000
13
+
*/
14
+
avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()),
15
+
/**
16
+
* Larger header image to be displayed on the profile.
17
+
* @accept image/png, image/jpeg
18
+
* @maxSize 1000000
19
+
*/
20
+
banner: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()),
21
+
createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
22
+
/**
23
+
* Free-form profile description text.
24
+
* @maxLength 2500
25
+
* @maxGraphemes 256
26
+
*/
27
+
description: /*#__PURE__*/ v.optional(
28
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
29
+
/*#__PURE__*/ v.stringLength(0, 2500),
30
+
/*#__PURE__*/ v.stringGraphemes(0, 256),
31
+
]),
32
+
),
33
+
/**
34
+
* @maxLength 640
35
+
* @maxGraphemes 64
36
+
*/
37
+
displayName: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
38
+
/*#__PURE__*/ v.stringLength(0, 640),
39
+
/*#__PURE__*/ v.stringGraphemes(0, 64),
40
+
]),
41
+
/**
42
+
* Free-form text to describe pronouns.
43
+
* @maxLength 200
44
+
* @maxGraphemes 20
45
+
*/
46
+
pronouns: /*#__PURE__*/ v.optional(
47
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
48
+
/*#__PURE__*/ v.stringLength(0, 200),
49
+
/*#__PURE__*/ v.stringGraphemes(0, 20),
50
+
]),
51
+
),
52
+
website: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.genericUriString()),
53
+
}),
54
+
);
55
+
56
+
type main$schematype = typeof _mainSchema;
57
+
58
+
export interface mainSchema extends main$schematype {}
59
+
60
+
export const mainSchema = _mainSchema as mainSchema;
61
+
62
+
export interface Main extends v.InferInput<typeof mainSchema> {}
63
+
64
+
declare module "@atcute/lexicons/ambient" {
65
+
interface Records {
66
+
"blue.recipes.actor.profile": mainSchema;
67
+
}
68
+
}
+42
libs/lexicons/lib/types/blue/recipes/feed/defs.ts
+42
libs/lexicons/lib/types/blue/recipes/feed/defs.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
import * as BlueRecipesActorDefs from "../actor/defs.js";
4
+
import * as BlueRecipesFeedRecipe from "./recipe.js";
5
+
6
+
const _notFoundRecipeSchema = /*#__PURE__*/ v.object({
7
+
$type: /*#__PURE__*/ v.optional(
8
+
/*#__PURE__*/ v.literal("blue.recipes.feed.defs#notFoundRecipe"),
9
+
),
10
+
notFound: /*#__PURE__*/ v.literal(true),
11
+
uri: /*#__PURE__*/ v.resourceUriString(),
12
+
});
13
+
const _recipeViewSchema = /*#__PURE__*/ v.object({
14
+
$type: /*#__PURE__*/ v.optional(
15
+
/*#__PURE__*/ v.literal("blue.recipes.feed.defs#recipeView"),
16
+
),
17
+
get author() {
18
+
return BlueRecipesActorDefs.profileViewBasicSchema;
19
+
},
20
+
cid: /*#__PURE__*/ v.cidString(),
21
+
imageUrl: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
22
+
indexedAt: /*#__PURE__*/ v.datetimeString(),
23
+
get record() {
24
+
return BlueRecipesFeedRecipe.mainSchema;
25
+
},
26
+
rkey: /*#__PURE__*/ v.string(),
27
+
uri: /*#__PURE__*/ v.resourceUriString(),
28
+
});
29
+
30
+
type notFoundRecipe$schematype = typeof _notFoundRecipeSchema;
31
+
type recipeView$schematype = typeof _recipeViewSchema;
32
+
33
+
export interface notFoundRecipeSchema extends notFoundRecipe$schematype {}
34
+
export interface recipeViewSchema extends recipeView$schematype {}
35
+
36
+
export const notFoundRecipeSchema =
37
+
_notFoundRecipeSchema as notFoundRecipeSchema;
38
+
export const recipeViewSchema = _recipeViewSchema as recipeViewSchema;
39
+
40
+
export interface NotFoundRecipe
41
+
extends v.InferInput<typeof notFoundRecipeSchema> {}
42
+
export interface RecipeView extends v.InferInput<typeof recipeViewSchema> {}
+39
libs/lexicons/lib/types/blue/recipes/feed/getRecipe.ts
+39
libs/lexicons/lib/types/blue/recipes/feed/getRecipe.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
import type {} from "@atcute/lexicons/ambient";
4
+
import * as BlueRecipesFeedDefs from "./defs.js";
5
+
6
+
const _mainSchema = /*#__PURE__*/ v.query("blue.recipes.feed.getRecipe", {
7
+
params: /*#__PURE__*/ v.object({
8
+
/**
9
+
* @minLength 1
10
+
*/
11
+
uris: /*#__PURE__*/ v.constrain(
12
+
/*#__PURE__*/ v.array(/*#__PURE__*/ v.resourceUriString()),
13
+
[/*#__PURE__*/ v.arrayLength(1)],
14
+
),
15
+
}),
16
+
output: {
17
+
type: "lex",
18
+
schema: /*#__PURE__*/ v.object({
19
+
get recipes() {
20
+
return /*#__PURE__*/ v.array(BlueRecipesFeedDefs.recipeViewSchema);
21
+
},
22
+
}),
23
+
},
24
+
});
25
+
26
+
type main$schematype = typeof _mainSchema;
27
+
28
+
export interface mainSchema extends main$schematype {}
29
+
30
+
export const mainSchema = _mainSchema as mainSchema;
31
+
32
+
export interface $params extends v.InferInput<mainSchema["params"]> {}
33
+
export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {}
34
+
35
+
declare module "@atcute/lexicons/ambient" {
36
+
interface XRPCQueries {
37
+
"blue.recipes.feed.getRecipe": mainSchema;
38
+
}
39
+
}
+46
libs/lexicons/lib/types/blue/recipes/feed/getRecipes.ts
+46
libs/lexicons/lib/types/blue/recipes/feed/getRecipes.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
import type {} from "@atcute/lexicons/ambient";
4
+
import * as BlueRecipesFeedDefs from "./defs.js";
5
+
6
+
const _mainSchema = /*#__PURE__*/ v.query("blue.recipes.feed.getRecipes", {
7
+
params: /*#__PURE__*/ v.object({
8
+
author: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.actorIdentifierString()),
9
+
cursor: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
10
+
/**
11
+
* @minimum 1
12
+
* @maximum 100
13
+
* @default 50
14
+
*/
15
+
limit: /*#__PURE__*/ v.optional(
16
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.integer(), [
17
+
/*#__PURE__*/ v.integerRange(1, 100),
18
+
]),
19
+
50,
20
+
),
21
+
}),
22
+
output: {
23
+
type: "lex",
24
+
schema: /*#__PURE__*/ v.object({
25
+
nextCursor: /*#__PURE__*/ v.string(),
26
+
get recipes() {
27
+
return /*#__PURE__*/ v.array(BlueRecipesFeedDefs.recipeViewSchema);
28
+
},
29
+
}),
30
+
},
31
+
});
32
+
33
+
type main$schematype = typeof _mainSchema;
34
+
35
+
export interface mainSchema extends main$schematype {}
36
+
37
+
export const mainSchema = _mainSchema as mainSchema;
38
+
39
+
export interface $params extends v.InferInput<mainSchema["params"]> {}
40
+
export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {}
41
+
42
+
declare module "@atcute/lexicons/ambient" {
43
+
interface XRPCQueries {
44
+
"blue.recipes.feed.getRecipes": mainSchema;
45
+
}
46
+
}
+104
libs/lexicons/lib/types/blue/recipes/feed/recipe.ts
+104
libs/lexicons/lib/types/blue/recipes/feed/recipe.ts
···
1
+
import type {} from "@atcute/lexicons";
2
+
import * as v from "@atcute/lexicons/validations";
3
+
import type {} from "@atcute/lexicons/ambient";
4
+
5
+
const _ingredientSchema = /*#__PURE__*/ v.object({
6
+
$type: /*#__PURE__*/ v.optional(
7
+
/*#__PURE__*/ v.literal("blue.recipes.feed.recipe#ingredient"),
8
+
),
9
+
/**
10
+
* The amount of the ingredient needed.
11
+
*/
12
+
amount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
13
+
/**
14
+
* The name of the ingredient.
15
+
* @maxLength 3000
16
+
* @maxGraphemes 300
17
+
*/
18
+
name: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
19
+
/*#__PURE__*/ v.stringLength(0, 3000),
20
+
/*#__PURE__*/ v.stringGraphemes(0, 300),
21
+
]),
22
+
});
23
+
const _mainSchema = /*#__PURE__*/ v.record(
24
+
/*#__PURE__*/ v.tidString(),
25
+
/*#__PURE__*/ v.object({
26
+
$type: /*#__PURE__*/ v.literal("blue.recipes.feed.recipe"),
27
+
createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()),
28
+
/**
29
+
* Free-form recipe description text.
30
+
* @maxLength 3000
31
+
* @maxGraphemes 300
32
+
*/
33
+
description: /*#__PURE__*/ v.optional(
34
+
/*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
35
+
/*#__PURE__*/ v.stringLength(0, 3000),
36
+
/*#__PURE__*/ v.stringGraphemes(0, 300),
37
+
]),
38
+
),
39
+
/**
40
+
* Image representing the recipe.
41
+
* @accept image/png, image/jpeg
42
+
* @maxSize 1000000
43
+
*/
44
+
image: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()),
45
+
get ingredients() {
46
+
return /*#__PURE__*/ v.array(ingredientSchema);
47
+
},
48
+
/**
49
+
* The number of servings the recipe prepares.
50
+
*/
51
+
serves: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()),
52
+
get steps() {
53
+
return /*#__PURE__*/ v.array(stepSchema);
54
+
},
55
+
/**
56
+
* The amount of time (in minutes) it takes to complete the recipe.
57
+
*/
58
+
time: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()),
59
+
/**
60
+
* @maxLength 3000
61
+
* @maxGraphemes 300
62
+
*/
63
+
title: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
64
+
/*#__PURE__*/ v.stringLength(0, 3000),
65
+
/*#__PURE__*/ v.stringGraphemes(0, 300),
66
+
]),
67
+
}),
68
+
);
69
+
const _stepSchema = /*#__PURE__*/ v.object({
70
+
$type: /*#__PURE__*/ v.optional(
71
+
/*#__PURE__*/ v.literal("blue.recipes.feed.recipe#step"),
72
+
),
73
+
/**
74
+
* The instruction to provide to the user.
75
+
* @maxLength 5000
76
+
* @maxGraphemes 500
77
+
*/
78
+
text: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
79
+
/*#__PURE__*/ v.stringLength(0, 5000),
80
+
/*#__PURE__*/ v.stringGraphemes(0, 500),
81
+
]),
82
+
});
83
+
84
+
type ingredient$schematype = typeof _ingredientSchema;
85
+
type main$schematype = typeof _mainSchema;
86
+
type step$schematype = typeof _stepSchema;
87
+
88
+
export interface ingredientSchema extends ingredient$schematype {}
89
+
export interface mainSchema extends main$schematype {}
90
+
export interface stepSchema extends step$schematype {}
91
+
92
+
export const ingredientSchema = _ingredientSchema as ingredientSchema;
93
+
export const mainSchema = _mainSchema as mainSchema;
94
+
export const stepSchema = _stepSchema as stepSchema;
95
+
96
+
export interface Ingredient extends v.InferInput<typeof ingredientSchema> {}
97
+
export interface Main extends v.InferInput<typeof mainSchema> {}
98
+
export interface Step extends v.InferInput<typeof stepSchema> {}
99
+
100
+
declare module "@atcute/lexicons/ambient" {
101
+
interface Records {
102
+
"blue.recipes.feed.recipe": mainSchema;
103
+
}
104
+
}
+41
-12
libs/lexicons/package.json
+41
-12
libs/lexicons/package.json
···
1
1
{
2
+
"type": "module",
2
3
"name": "@cookware/lexicons",
3
4
"version": "0.0.0",
4
-
"type": "module",
5
-
"private": true,
6
-
"main": "src/index.ts",
7
-
"publishConfig": {
8
-
"access": "public"
5
+
"description": "TypeScript definitions for Atproto lexicons used in recipes.blue",
6
+
"keywords": ["atproto", "recipes.blue", "lexicons"],
7
+
"license": "BSD",
8
+
"repository": {
9
+
"url": "https://tangled.org/roost.moe/recipes.blue",
10
+
"directory": "libs/lexicons"
11
+
},
12
+
"files": [
13
+
"dist/",
14
+
"lib/*",
15
+
"!lib/**/*.bench.ts",
16
+
"!lib/**/*.test.ts"
17
+
],
18
+
"exports": {
19
+
".": "./dist/index.js",
20
+
"./did": "./dist/did.js"
21
+
},
22
+
"scripts": {
23
+
"dev": "tsc --watch --project tsconfig.build.json",
24
+
"build": "tsc --project tsconfig.build.json",
25
+
"lexcomp": "rm -rf tsp-output && tsp compile ./lexicons --emit @typelex/emitter",
26
+
"lexgen": "bun run -b lexcomp && rm -rf lib/types && lex-cli generate --config ./lex.config.ts",
27
+
"prepublish": "rm -rf dist; bun run build"
28
+
},
29
+
"dependencies": {
30
+
"@atcute/atproto": "catalog:",
31
+
"@atcute/bluesky": "catalog:",
32
+
"@atcute/client": "catalog:",
33
+
"@atcute/lexicons": "catalog:"
9
34
},
10
35
"devDependencies": {
11
-
"@atcute/client": "^2.0.6",
12
-
"@atcute/lex-cli": "^1.0.3",
36
+
"@atcute/lex-cli": "^2.3.3",
13
37
"@cookware/tsconfig": "workspace:*",
14
-
"typescript": "^5.7.2",
15
-
"zod": "^3.23.8"
38
+
"@typelex/emitter": "^0.4.0",
39
+
"@types/bun": "catalog:",
40
+
"@typespec/compiler": "^1.6.0"
16
41
},
17
-
"peerDependencies": {
18
-
"@atcute/client": "^2.0.6",
19
-
"zod": "^3.23.8"
42
+
"atcute:lexicons": {
43
+
"mappings": {
44
+
"blue.recipes.*": {
45
+
"type": "namespace",
46
+
"path": "./types/{{nsid_remainder}}"
47
+
}
48
+
}
20
49
}
21
50
}
+1
-1
libs/lexicons/scripts/generate.sh
+1
-1
libs/lexicons/scripts/generate.sh
+83
libs/lexicons/scripts/publish.ts
+83
libs/lexicons/scripts/publish.ts
···
1
+
import { readdirSync, statSync } from "fs";
2
+
import { join } from "path";
3
+
4
+
const TSP_OUTPUT_DIR = join(import.meta.dir, "../tsp-output/@typelex/emitter");
5
+
6
+
interface LexiconFile {
7
+
path: string;
8
+
id: string;
9
+
content: unknown;
10
+
}
11
+
12
+
async function crawlJsonFiles(dir: string): Promise<LexiconFile[]> {
13
+
const results: LexiconFile[] = [];
14
+
15
+
const entries = readdirSync(dir);
16
+
17
+
for (const entry of entries) {
18
+
const fullPath = join(dir, entry);
19
+
const stat = statSync(fullPath);
20
+
21
+
if (stat.isDirectory()) {
22
+
results.push(...(await crawlJsonFiles(fullPath)));
23
+
} else if (entry.endsWith(".json")) {
24
+
const file = Bun.file(fullPath);
25
+
const content = await file.json();
26
+
27
+
results.push({
28
+
path: fullPath,
29
+
id: content.id || entry.replace(".json", ""),
30
+
content,
31
+
});
32
+
}
33
+
}
34
+
35
+
return results;
36
+
}
37
+
38
+
async function generateDNSRecords(did: string): Promise<string> {
39
+
const lexicons = await crawlJsonFiles(TSP_OUTPUT_DIR);
40
+
const authorities = new Map<string, string[]>();
41
+
42
+
// group lexicons by authority (everything except the final "name" part)
43
+
for (const lex of lexicons) {
44
+
// blue.recipes.feed.getRecipe -> blue.recipes.feed (authority)
45
+
const parts = lex.id.split(".");
46
+
const authority = parts.slice(0, -1).join(".");
47
+
48
+
if (!authorities.has(authority)) {
49
+
authorities.set(authority, []);
50
+
}
51
+
authorities.get(authority)!.push(lex.id);
52
+
}
53
+
54
+
// generate DNS TXT records
55
+
const records: string[] = [];
56
+
records.push("; Lexicon DNS TXT Records for Cloudflare");
57
+
records.push("; Upload these to your Cloudflare DNS settings\n");
58
+
59
+
for (const [authority, nsids] of authorities) {
60
+
// blue.recipes.feed -> _lexicon.feed.recipes.blue
61
+
const reversedAuthority = authority.split(".").reverse().join(".");
62
+
const txtName = `_lexicon.${reversedAuthority}`;
63
+
64
+
records.push(`; Authority: ${authority}`);
65
+
records.push(`; NSIDs: ${nsids.join(", ")}`);
66
+
records.push(`${txtName}\tTXT\tdid=${did}`);
67
+
records.push("");
68
+
}
69
+
70
+
return records.join("\n");
71
+
}
72
+
73
+
// main
74
+
const did = process.argv[2];
75
+
76
+
if (!did || !did.startsWith("did:")) {
77
+
console.error("usage: bun run scripts/publish.ts <did>");
78
+
console.error("example: bun run scripts/publish.ts did:plc:xyz123");
79
+
process.exit(1);
80
+
}
81
+
82
+
const dnsRecords = await generateDNSRecords(did);
83
+
console.log(dnsRecords);
-128
libs/lexicons/src/atcute.ts
-128
libs/lexicons/src/atcute.ts
···
1
-
/* eslint-disable */
2
-
// This file is automatically generated, do not edit!
3
-
4
-
/**
5
-
* @module
6
-
* Contains type declarations for Cookware lexicons
7
-
*/
8
-
9
-
import "@atcute/client/lexicons";
10
-
11
-
declare module "@atcute/client/lexicons" {
12
-
namespace BlueRecipesFeedDefs {
13
-
interface AuthorInfo {
14
-
[Brand.Type]?: "blue.recipes.feed.defs#authorInfo";
15
-
did: string;
16
-
handle: string;
17
-
avatarUrl?: string;
18
-
displayName?: string;
19
-
}
20
-
interface Ingredient {
21
-
[Brand.Type]?: "blue.recipes.feed.defs#ingredient";
22
-
/** How much of the ingredient is needed. */
23
-
amount?: string;
24
-
/**
25
-
* The name of the ingredient. \
26
-
* Maximum string length: 3000 \
27
-
* Maximum grapheme length: 300
28
-
*/
29
-
name?: string;
30
-
}
31
-
interface Step {
32
-
[Brand.Type]?: "blue.recipes.feed.defs#step";
33
-
/**
34
-
* The instruction to provide to the user. \
35
-
* Maximum string length: 5000 \
36
-
* Maximum grapheme length: 300
37
-
*/
38
-
text: string;
39
-
}
40
-
}
41
-
42
-
/** Gets a recipe from the index by author DID and rkey. */
43
-
namespace BlueRecipesFeedGetRecipe {
44
-
interface Params {
45
-
did: string;
46
-
rkey: string;
47
-
}
48
-
type Input = undefined;
49
-
interface Output {
50
-
recipe: Result;
51
-
}
52
-
interface Result {
53
-
[Brand.Type]?: "blue.recipes.feed.getRecipe#result";
54
-
author: BlueRecipesFeedDefs.AuthorInfo;
55
-
ingredients: BlueRecipesFeedDefs.Ingredient[];
56
-
steps: BlueRecipesFeedDefs.Step[];
57
-
title: string;
58
-
description?: string;
59
-
time?: number;
60
-
}
61
-
}
62
-
63
-
/** Gets recipes from the index. */
64
-
namespace BlueRecipesFeedGetRecipes {
65
-
interface Params {
66
-
cursor: string;
67
-
did?: string;
68
-
}
69
-
type Input = undefined;
70
-
interface Output {
71
-
recipes: Result[];
72
-
author?: BlueRecipesFeedDefs.AuthorInfo;
73
-
}
74
-
interface Result {
75
-
[Brand.Type]?: "blue.recipes.feed.getRecipes#result";
76
-
author: BlueRecipesFeedDefs.AuthorInfo;
77
-
ingredients: number;
78
-
rkey: string;
79
-
steps: number;
80
-
time: number;
81
-
title: string;
82
-
description?: string;
83
-
type?: string;
84
-
}
85
-
}
86
-
87
-
namespace BlueRecipesFeedRecipe {
88
-
/** Record containing a Cookware recipe. */
89
-
interface Record {
90
-
$type: "blue.recipes.feed.recipe";
91
-
ingredients: BlueRecipesFeedDefs.Ingredient[];
92
-
steps: BlueRecipesFeedDefs.Step[];
93
-
/**
94
-
* The title of the recipe. \
95
-
* Maximum string length: 3000 \
96
-
* Maximum grapheme length: 300
97
-
*/
98
-
title: string;
99
-
/**
100
-
* The description of the recipe. \
101
-
* Maximum string length: 3000 \
102
-
* Maximum grapheme length: 300
103
-
*/
104
-
description?: string;
105
-
/** The recipe's cover image. */
106
-
image?: At.Blob;
107
-
/** The amount of time (in minutes) the recipe takes to complete. */
108
-
time?: number;
109
-
}
110
-
}
111
-
112
-
interface Records {
113
-
"blue.recipes.feed.recipe": BlueRecipesFeedRecipe.Record;
114
-
}
115
-
116
-
interface Queries {
117
-
"blue.recipes.feed.getRecipe": {
118
-
params: BlueRecipesFeedGetRecipe.Params;
119
-
output: BlueRecipesFeedGetRecipe.Output;
120
-
};
121
-
"blue.recipes.feed.getRecipes": {
122
-
params: BlueRecipesFeedGetRecipes.Params;
123
-
output: BlueRecipesFeedGetRecipes.Output;
124
-
};
125
-
}
126
-
127
-
interface Procedures {}
128
-
}
-14
libs/lexicons/src/defs.ts
-14
libs/lexicons/src/defs.ts
···
1
-
import { z } from 'zod';
2
-
3
-
export const IngredientObject = z.object({
4
-
amount: z.string().nullable(),
5
-
name: z.string().max(3000, 'Ingredient names must be under 3000 characters.'),
6
-
});
7
-
8
-
export type Ingredient = z.infer<typeof IngredientObject>;
9
-
10
-
export const StepObject = z.object({
11
-
text: z.string().max(5000, 'Recipe steps must be under 5000 characters.'),
12
-
});
13
-
14
-
export type Step = z.infer<typeof StepObject>;
-134
libs/lexicons/src/did.ts
-134
libs/lexicons/src/did.ts
···
1
-
import { z } from "zod";
2
-
3
-
type Brand<K, T> = K & { __brand: T };
4
-
export type DID = Brand<string, "DID">;
5
-
6
-
export function isDid(s: string): s is DID {
7
-
return s.startsWith("did:");
8
-
}
9
-
10
-
export function parseDid(s: string): DID | null {
11
-
if (!isDid(s)) {
12
-
return null;
13
-
}
14
-
return s;
15
-
}
16
-
17
-
export const getDidDoc = async (did: DID) => {
18
-
let url = `https://plc.directory/${did}`;
19
-
if (did.startsWith('did:web')) {
20
-
url = `https://${did.split(':')[2]}/.well-known/did.json`;
21
-
}
22
-
23
-
const response = await fetch(url);
24
-
25
-
return PlcDocument.parse(await response.json());
26
-
};
27
-
28
-
export const getPdsUrl = async (did: DID) => {
29
-
const plc = await getDidDoc(did);
30
-
31
-
return (
32
-
plc.service.find((s) => s.type === "AtprotoPersonalDataServer")
33
-
?.serviceEndpoint ?? null
34
-
);
35
-
};
36
-
37
-
const PlcDocument = z.object({
38
-
id: z.string(),
39
-
alsoKnownAs: z.array(z.string()),
40
-
service: z.array(
41
-
z.object({
42
-
id: z.string(),
43
-
type: z.string(),
44
-
serviceEndpoint: z.string(),
45
-
}),
46
-
),
47
-
});
48
-
49
-
const DnsQueryResponse = z.object({
50
-
Answer: z.array(
51
-
z.object({
52
-
name: z.string(),
53
-
type: z.number(),
54
-
TTL: z.number(),
55
-
data: z.string(),
56
-
}),
57
-
),
58
-
});
59
-
60
-
async function getAtprotoDidFromDns(handle: string) {
61
-
const url = new URL("https://cloudflare-dns.com/dns-query");
62
-
url.searchParams.set("type", "TXT");
63
-
url.searchParams.set("name", `_atproto.${handle}`);
64
-
65
-
const response = await fetch(url, {
66
-
headers: {
67
-
Accept: "application/dns-json",
68
-
},
69
-
});
70
-
71
-
const { Answer } = DnsQueryResponse.parse(await response.json());
72
-
// Answer[0].data is "\"did=...\"" (with quotes)
73
-
const val = Answer[0]?.data
74
-
? JSON.parse(Answer[0]?.data).split("did=")[1]
75
-
: null;
76
-
77
-
return val ? parseDid(val) : null;
78
-
}
79
-
80
-
const getAtprotoFromHttps = async (handle: string) => {
81
-
let res;
82
-
const timeoutSignal = AbortSignal.timeout(1500);
83
-
try {
84
-
res = await fetch(`https://${handle}/.well-known/atproto-did`, {
85
-
signal: timeoutSignal,
86
-
});
87
-
} catch (_e) {
88
-
// We're caching failures here, we should at some point invalidate the cache by listening to handle changes on the network
89
-
return null;
90
-
}
91
-
92
-
if (!res.ok) {
93
-
return null;
94
-
}
95
-
return parseDid((await res.text()).trim());
96
-
};
97
-
98
-
export const getVerifiedDid = async (handle: string) => {
99
-
const [dnsDid, httpDid] = await Promise.all([
100
-
getAtprotoDidFromDns(handle).catch((_) => {
101
-
return null;
102
-
}),
103
-
getAtprotoFromHttps(handle).catch(() => {
104
-
return null;
105
-
}),
106
-
]);
107
-
108
-
if (dnsDid && httpDid && dnsDid !== httpDid) {
109
-
return null;
110
-
}
111
-
112
-
const did = dnsDid ?? (httpDid ? parseDid(httpDid) : null);
113
-
if (!did) {
114
-
return null;
115
-
}
116
-
117
-
const plcDoc = await getDidDoc(did);
118
-
const plcHandle = plcDoc.alsoKnownAs
119
-
.find((handle) => handle.startsWith("at://"))
120
-
?.replace("at://", "");
121
-
122
-
if (!plcHandle) return null;
123
-
124
-
return plcHandle.toLowerCase() === handle.toLowerCase() ? did : null;
125
-
};
126
-
127
-
export const getDidFromHandleOrDid = async (handleOrDid: string) => {
128
-
const decodedHandleOrDid = decodeURIComponent(handleOrDid);
129
-
if (isDid(decodedHandleOrDid)) {
130
-
return decodedHandleOrDid;
131
-
}
132
-
133
-
return getVerifiedDid(decodedHandleOrDid);
134
-
};
-4
libs/lexicons/src/index.ts
-4
libs/lexicons/src/index.ts
-14
libs/lexicons/src/recipe.ts
-14
libs/lexicons/src/recipe.ts
···
1
-
import { z } from 'zod';
2
-
import { IngredientObject, StepObject } from './defs.js';
3
-
4
-
export const RecipeCollection = 'blue.recipes.feed.recipe' as const;
5
-
6
-
export const RecipeRecord = z.object({
7
-
title: z.string().max(3000, 'Recipe titles must be under 3000 characters.'),
8
-
description: z.string().max(3000, 'Recipe descriptions must be under 3000 characters.').nullable(),
9
-
time: z.number({ message: 'Time must be a number.' }),
10
-
ingredients: z.array(IngredientObject),
11
-
steps: z.array(StepObject),
12
-
});
13
-
14
-
export type Recipe = z.infer<typeof RecipeRecord>;
+8
libs/lexicons/tsconfig.build.json
+8
libs/lexicons/tsconfig.build.json
+4
-1
libs/lexicons/tsconfig.json
+4
-1
libs/lexicons/tsconfig.json
+3
libs/tsconfig/package.json
+3
libs/tsconfig/package.json
+15
-2
package.json
+15
-2
package.json
···
1
1
{
2
+
"name": "@cookware/monorepo",
2
3
"private": true,
3
-
"packageManager": "pnpm@9.15.0",
4
+
"packageManager": "bun@1.3.3",
4
5
"devDependencies": {
5
-
"turbo": "^2.3.3"
6
+
"turbo": "^2.3.3",
7
+
"typescript": "^5.9.3"
6
8
},
7
9
"scripts": {
8
10
"dev": "turbo dev",
9
11
"build": "turbo build",
10
12
"db:generate": "turbo db:generate",
11
13
"db:migrate": "turbo db:migrate"
14
+
},
15
+
"workspaces": {
16
+
"packages": ["apps/**", "libs/**"],
17
+
"catalog": {
18
+
"@types/bun": "^1.3.3",
19
+
"@atcute/atproto": "^3.1.9",
20
+
"@atcute/bluesky": "^3.2.11",
21
+
"@atcute/client": "^4.0.5",
22
+
"@atcute/lexicons": "^1.2.5",
23
+
"drizzle-orm": "^0.44.7"
24
+
}
12
25
}
13
26
}
-8141
pnpm-lock.yaml
-8141
pnpm-lock.yaml
···
1
-
lockfileVersion: '9.0'
2
-
3
-
settings:
4
-
autoInstallPeers: true
5
-
excludeLinksFromLockfile: false
6
-
7
-
importers:
8
-
9
-
.:
10
-
devDependencies:
11
-
turbo:
12
-
specifier: ^2.3.3
13
-
version: 2.3.3
14
-
15
-
apps/api:
16
-
dependencies:
17
-
'@atcute/client':
18
-
specifier: ^2.0.6
19
-
version: 2.0.6
20
-
'@atproto/api':
21
-
specifier: ^0.13.19
22
-
version: 0.13.19
23
-
'@atproto/common':
24
-
specifier: ^0.4.5
25
-
version: 0.4.5
26
-
'@atproto/crypto':
27
-
specifier: ^0.4.2
28
-
version: 0.4.2
29
-
'@atproto/jwk-jose':
30
-
specifier: ^0.1.2
31
-
version: 0.1.2
32
-
'@atproto/oauth-client-node':
33
-
specifier: ^0.2.3
34
-
version: 0.2.3
35
-
'@cookware/database':
36
-
specifier: workspace:^
37
-
version: link:../../libs/database
38
-
'@hono/node-server':
39
-
specifier: ^1.13.7
40
-
version: 1.13.7(hono@4.6.12)
41
-
'@libsql/client':
42
-
specifier: ^0.14.0
43
-
version: 0.14.0(bufferutil@4.0.8)
44
-
'@sentry/node':
45
-
specifier: ^8.42.0
46
-
version: 8.42.0
47
-
'@skyware/jetstream':
48
-
specifier: ^0.2.1
49
-
version: 0.2.1(@atcute/client@2.0.6)
50
-
bufferutil:
51
-
specifier: ^4.0.8
52
-
version: 4.0.8
53
-
drizzle-orm:
54
-
specifier: ^0.37.0
55
-
version: 0.37.0(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(@types/react@19.0.1)(react@19.0.0)
56
-
hono:
57
-
specifier: ^4.6.12
58
-
version: 4.6.12
59
-
hono-sessions:
60
-
specifier: ^0.7.0
61
-
version: 0.7.0
62
-
jose:
63
-
specifier: ^5.9.6
64
-
version: 5.9.6
65
-
pino:
66
-
specifier: ^9.5.0
67
-
version: 9.5.0
68
-
uint8arrays:
69
-
specifier: ^5.1.0
70
-
version: 5.1.0
71
-
ws:
72
-
specifier: ^8.18.0
73
-
version: 8.18.0(bufferutil@4.0.8)
74
-
zod:
75
-
specifier: ^3.23.8
76
-
version: 3.23.8
77
-
devDependencies:
78
-
'@atcute/bluesky':
79
-
specifier: ^1.0.9
80
-
version: 1.0.9(@atcute/client@2.0.6)
81
-
'@cookware/lexicons':
82
-
specifier: workspace:*
83
-
version: link:../../libs/lexicons
84
-
'@cookware/tsconfig':
85
-
specifier: workspace:*
86
-
version: link:../../libs/tsconfig
87
-
'@swc/core':
88
-
specifier: ^1.9.3
89
-
version: 1.9.3
90
-
'@types/node':
91
-
specifier: ^22.10.1
92
-
version: 22.10.1
93
-
'@types/ws':
94
-
specifier: ^8.5.13
95
-
version: 8.5.13
96
-
drizzle-kit:
97
-
specifier: ^0.29.0
98
-
version: 0.29.0
99
-
pino-pretty:
100
-
specifier: ^13.0.0
101
-
version: 13.0.0
102
-
rimraf:
103
-
specifier: ^6.0.1
104
-
version: 6.0.1
105
-
ts-node:
106
-
specifier: ^10.9.2
107
-
version: 10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.7.2)
108
-
tsup:
109
-
specifier: ^8.3.5
110
-
version: 8.3.5(@swc/core@1.9.3)(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1)
111
-
tsx:
112
-
specifier: ^4.19.2
113
-
version: 4.19.2
114
-
typescript:
115
-
specifier: ^5.7.2
116
-
version: 5.7.2
117
-
118
-
apps/ingester:
119
-
dependencies:
120
-
'@atcute/client':
121
-
specifier: ^2.0.6
122
-
version: 2.0.6
123
-
'@cookware/database':
124
-
specifier: workspace:^
125
-
version: link:../../libs/database
126
-
'@sentry/node':
127
-
specifier: ^8.42.0
128
-
version: 8.42.0
129
-
'@skyware/jetstream':
130
-
specifier: ^0.2.1
131
-
version: 0.2.1(@atcute/client@2.0.6)
132
-
bufferutil:
133
-
specifier: ^4.0.8
134
-
version: 4.0.8
135
-
drizzle-orm:
136
-
specifier: ^0.37.0
137
-
version: 0.37.0(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(@types/react@19.0.1)(react@19.0.0)
138
-
pino:
139
-
specifier: ^9.5.0
140
-
version: 9.5.0
141
-
ws:
142
-
specifier: ^8.18.0
143
-
version: 8.18.0(bufferutil@4.0.8)
144
-
zod:
145
-
specifier: ^3.23.8
146
-
version: 3.23.8
147
-
devDependencies:
148
-
'@cookware/lexicons':
149
-
specifier: workspace:*
150
-
version: link:../../libs/lexicons
151
-
'@cookware/tsconfig':
152
-
specifier: workspace:*
153
-
version: link:../../libs/tsconfig
154
-
'@types/node':
155
-
specifier: ^22.10.1
156
-
version: 22.10.1
157
-
'@types/ws':
158
-
specifier: ^8.5.13
159
-
version: 8.5.13
160
-
pino-pretty:
161
-
specifier: ^13.0.0
162
-
version: 13.0.0
163
-
rimraf:
164
-
specifier: ^6.0.1
165
-
version: 6.0.1
166
-
ts-node:
167
-
specifier: ^10.9.2
168
-
version: 10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.7.2)
169
-
tsup:
170
-
specifier: ^8.3.5
171
-
version: 8.3.5(@swc/core@1.9.3)(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1)
172
-
tsx:
173
-
specifier: ^4.19.2
174
-
version: 4.19.2
175
-
typescript:
176
-
specifier: ^5.7.2
177
-
version: 5.7.2
178
-
179
-
apps/web:
180
-
dependencies:
181
-
'@atcute/client':
182
-
specifier: ^2.0.6
183
-
version: 2.0.6
184
-
'@atcute/oauth-browser-client':
185
-
specifier: ^1.0.7
186
-
version: 1.0.7
187
-
'@atproto/common':
188
-
specifier: ^0.4.5
189
-
version: 0.4.5
190
-
'@atproto/common-web':
191
-
specifier: ^0.3.1
192
-
version: 0.3.1
193
-
'@dnd-kit/core':
194
-
specifier: ^6.3.1
195
-
version: 6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
196
-
'@dnd-kit/modifiers':
197
-
specifier: ^9.0.0
198
-
version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
199
-
'@dnd-kit/sortable':
200
-
specifier: ^10.0.0
201
-
version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
202
-
'@dnd-kit/utilities':
203
-
specifier: ^3.2.2
204
-
version: 3.2.2(react@19.0.0)
205
-
'@hookform/resolvers':
206
-
specifier: ^3.9.1
207
-
version: 3.9.1(react-hook-form@7.54.1(react@19.0.0))
208
-
'@radix-ui/react-avatar':
209
-
specifier: ^1.1.1
210
-
version: 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
211
-
'@radix-ui/react-collapsible':
212
-
specifier: ^1.1.1
213
-
version: 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
214
-
'@radix-ui/react-dialog':
215
-
specifier: ^1.1.4
216
-
version: 1.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
217
-
'@radix-ui/react-dropdown-menu':
218
-
specifier: ^2.1.4
219
-
version: 2.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
220
-
'@radix-ui/react-icons':
221
-
specifier: ^1.3.2
222
-
version: 1.3.2(react@19.0.0)
223
-
'@radix-ui/react-label':
224
-
specifier: ^2.1.0
225
-
version: 2.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
226
-
'@radix-ui/react-separator':
227
-
specifier: ^1.1.0
228
-
version: 1.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
229
-
'@radix-ui/react-slot':
230
-
specifier: ^1.1.0
231
-
version: 1.1.0(@types/react@19.0.1)(react@19.0.0)
232
-
'@radix-ui/react-tooltip':
233
-
specifier: ^1.1.4
234
-
version: 1.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
235
-
'@tanstack/react-query':
236
-
specifier: ^5.62.2
237
-
version: 5.62.2(react@19.0.0)
238
-
'@tanstack/react-query-devtools':
239
-
specifier: ^5.62.2
240
-
version: 5.62.2(@tanstack/react-query@5.62.2(react@19.0.0))(react@19.0.0)
241
-
'@tanstack/react-router':
242
-
specifier: ^1.91.2
243
-
version: 1.91.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
244
-
axios:
245
-
specifier: ^1.7.9
246
-
version: 1.7.9
247
-
class-variance-authority:
248
-
specifier: ^0.7.1
249
-
version: 0.7.1
250
-
clsx:
251
-
specifier: ^2.1.1
252
-
version: 2.1.1
253
-
lucide-react:
254
-
specifier: ^0.464.0
255
-
version: 0.464.0(react@19.0.0)
256
-
react-dom:
257
-
specifier: 19.0.0
258
-
version: 19.0.0(react@19.0.0)
259
-
react-hook-form:
260
-
specifier: ^7.54.1
261
-
version: 7.54.1(react@19.0.0)
262
-
tailwind-merge:
263
-
specifier: ^2.5.5
264
-
version: 2.5.5
265
-
tailwindcss-animate:
266
-
specifier: ^1.0.7
267
-
version: 1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3)))
268
-
zod:
269
-
specifier: ^3.23.8
270
-
version: 3.23.8
271
-
devDependencies:
272
-
'@atcute/bluesky':
273
-
specifier: ^1.0.9
274
-
version: 1.0.9(@atcute/client@2.0.6)
275
-
'@cookware/lexicons':
276
-
specifier: workspace:*
277
-
version: link:../../libs/lexicons
278
-
'@eslint/js':
279
-
specifier: ^9.15.0
280
-
version: 9.16.0
281
-
'@tanstack/eslint-plugin-query':
282
-
specifier: ^5.62.1
283
-
version: 5.62.1(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
284
-
'@tanstack/router-devtools':
285
-
specifier: ^1.85.5
286
-
version: 1.85.5(@tanstack/react-router@1.91.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
287
-
'@tanstack/router-plugin':
288
-
specifier: ^1.85.3
289
-
version: 1.85.3(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1))
290
-
'@types/node':
291
-
specifier: ^22.10.1
292
-
version: 22.10.1
293
-
'@types/react':
294
-
specifier: ^19.0.0
295
-
version: 19.0.1
296
-
'@types/react-dom':
297
-
specifier: ^19.0.0
298
-
version: 19.0.1
299
-
'@vitejs/plugin-react-swc':
300
-
specifier: ^3.5.0
301
-
version: 3.7.2(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1))
302
-
autoprefixer:
303
-
specifier: ^10.4.20
304
-
version: 10.4.20(postcss@8.4.49)
305
-
cssnano:
306
-
specifier: ^7.0.6
307
-
version: 7.0.6(postcss@8.4.49)
308
-
eslint:
309
-
specifier: ^9.15.0
310
-
version: 9.16.0(jiti@2.4.1)
311
-
eslint-plugin-react-hooks:
312
-
specifier: ^5.0.0
313
-
version: 5.0.0(eslint@9.16.0(jiti@2.4.1))
314
-
eslint-plugin-react-refresh:
315
-
specifier: ^0.4.14
316
-
version: 0.4.16(eslint@9.16.0(jiti@2.4.1))
317
-
globals:
318
-
specifier: ^15.12.0
319
-
version: 15.13.0
320
-
postcss:
321
-
specifier: ^8.4.49
322
-
version: 8.4.49
323
-
react:
324
-
specifier: 19.0.0
325
-
version: 19.0.0
326
-
tailwindcss:
327
-
specifier: ^3.4.16
328
-
version: 3.4.16(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3))
329
-
typescript:
330
-
specifier: ~5.6.2
331
-
version: 5.6.3
332
-
typescript-eslint:
333
-
specifier: ^8.15.0
334
-
version: 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
335
-
vite:
336
-
specifier: ^6.0.1
337
-
version: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1)
338
-
339
-
libs/database:
340
-
dependencies:
341
-
'@libsql/client':
342
-
specifier: ^0.14.0
343
-
version: 0.14.0(bufferutil@4.0.8)
344
-
drizzle-orm:
345
-
specifier: ^0.37.0
346
-
version: 0.37.0(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(@types/react@19.0.1)(react@19.0.0)
347
-
zod:
348
-
specifier: ^3.23.8
349
-
version: 3.23.8
350
-
devDependencies:
351
-
'@atproto/oauth-client-node':
352
-
specifier: ^0.2.3
353
-
version: 0.2.3
354
-
'@cookware/lexicons':
355
-
specifier: workspace:^
356
-
version: link:../lexicons
357
-
'@cookware/tsconfig':
358
-
specifier: workspace:*
359
-
version: link:../tsconfig
360
-
'@types/node':
361
-
specifier: ^22.10.1
362
-
version: 22.10.1
363
-
drizzle-kit:
364
-
specifier: ^0.29.0
365
-
version: 0.29.0
366
-
typescript:
367
-
specifier: ^5.2.2
368
-
version: 5.7.2
369
-
370
-
libs/lexicons:
371
-
devDependencies:
372
-
'@atcute/client':
373
-
specifier: ^2.0.6
374
-
version: 2.0.6
375
-
'@atcute/lex-cli':
376
-
specifier: ^1.0.3
377
-
version: 1.0.3
378
-
'@cookware/tsconfig':
379
-
specifier: workspace:*
380
-
version: link:../tsconfig
381
-
typescript:
382
-
specifier: ^5.7.2
383
-
version: 5.7.2
384
-
zod:
385
-
specifier: ^3.23.8
386
-
version: 3.23.8
387
-
388
-
libs/tsconfig: {}
389
-
390
-
packages:
391
-
392
-
'@alloc/quick-lru@5.2.0':
393
-
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
394
-
engines: {node: '>=10'}
395
-
396
-
'@ampproject/remapping@2.3.0':
397
-
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
398
-
engines: {node: '>=6.0.0'}
399
-
400
-
'@atcute/bluesky@1.0.9':
401
-
resolution: {integrity: sha512-06UbqlnREobZB5vVlstJXsJJVNBPr/RhauVVWQk9k8eIfzyiV9uxklc5olv+wULld+iBL6OQItnTEyZPv8QFLw==}
402
-
peerDependencies:
403
-
'@atcute/client': ^1.0.0 || ^2.0.0
404
-
405
-
'@atcute/client@2.0.6':
406
-
resolution: {integrity: sha512-mhdqEicGUx0s5HTFOLpz91rcLS9j/g63de0nmAqv7blhU3j+xBf4le54qr2YIXNfnReZI7EwLYLX/YIBez4LGA==}
407
-
408
-
'@atcute/lex-cli@1.0.3':
409
-
resolution: {integrity: sha512-o6nRrYe1Vu2C21ArSjBCaF9deujBmgx/Q3LkOJorZbc/ableFeThcS5jvePMYcW9t18EDSTlttKn13y8uuUDNQ==}
410
-
hasBin: true
411
-
412
-
'@atcute/oauth-browser-client@1.0.7':
413
-
resolution: {integrity: sha512-ikf3FscGZXYU+S0K4n9eDUMg6pS//g/Zr159+bznxO3Wn2JYBohEIxzy29OIEExXD/qAYMq9kfqvo2d0gs4JWQ==}
414
-
415
-
'@atproto-labs/did-resolver@0.1.6':
416
-
resolution: {integrity: sha512-qddGpcjKj9SUMlZW1d+/dY/03CDVcmOAlAozXEXsU2H5OT1vFAdMmOp0VbwK0y99RH3DvAQtyQKiRzoPFqp8rA==}
417
-
418
-
'@atproto-labs/fetch-node@0.1.4':
419
-
resolution: {integrity: sha512-hwYx0XpgIl2zydRy13DtWvywruuHk1EX+yCjqjgUIezUm8fi35ZN4QvR6INEm0MpN2MD/kQsImPbd8ZftzZ3zw==}
420
-
421
-
'@atproto-labs/fetch@0.1.2':
422
-
resolution: {integrity: sha512-7mQQIRtVenqtdBQKCqoLjyAhPS2aA56EGEjyz5zB3sramM3qkrvzyusr55GAzGDS0tvB6cy9cDEtSLmfK7LUnA==}
423
-
424
-
'@atproto-labs/handle-resolver-node@0.1.8':
425
-
resolution: {integrity: sha512-AlH7qRtmhZFRCcv1HK9OYiZpTFGcX39zjzzANq42zVLlfqoJr3ugnv7mAXGHE8woVguKtbypHnrVCDceoBAs2w==}
426
-
427
-
'@atproto-labs/handle-resolver@0.1.4':
428
-
resolution: {integrity: sha512-tnGUD2mQ6c8xHs3eeVJgwYqM3FHoTZZbOcOGKqO1A5cuIG+gElwEhpWwpwX5LI7FF4J8eS9BOHLl3NFS7Q8QXg==}
429
-
430
-
'@atproto-labs/identity-resolver@0.1.7':
431
-
resolution: {integrity: sha512-aRmY0cp+aFDgxAD62jjCPUDJMqryuXmt0hK9ls8LHeSzszr58BFDwybLaW6Izz2KISQlzu75Ia0c6uRymdmcYA==}
432
-
433
-
'@atproto-labs/pipe@0.1.0':
434
-
resolution: {integrity: sha512-ghOqHFyJlQVFPESzlVHjKroP0tPzbmG5Jms0dNI9yLDEfL8xp4OFPWLX4f6T8mRq69wWs4nIDM3sSsFbFqLa1w==}
435
-
436
-
'@atproto-labs/simple-store-memory@0.1.1':
437
-
resolution: {integrity: sha512-PCRqhnZ8NBNBvLku53O56T0lsVOtclfIrQU/rwLCc4+p45/SBPrRYNBi6YFq5rxZbK6Njos9MCmILV/KLQxrWA==}
438
-
439
-
'@atproto-labs/simple-store@0.1.1':
440
-
resolution: {integrity: sha512-WKILW2b3QbAYKh+w5U2x6p5FqqLl0nAeLwGeDY+KjX01K4Dq3vQTR9b/qNp0jZm48CabPQVrqCv0PPU9LgRRRg==}
441
-
442
-
'@atproto/api@0.13.19':
443
-
resolution: {integrity: sha512-rLWQBZaOIk3ds1Fx9CwrdyX3X2GbdSEvVJ9mdSPNX40joiEaE1ljGMOcziFipbvZacXynozE4E0Sb1CgOhzfmA==}
444
-
445
-
'@atproto/common-web@0.3.1':
446
-
resolution: {integrity: sha512-N7wiTnus5vAr+lT//0y8m/FaHHLJ9LpGuEwkwDAeV3LCiPif4m/FS8x/QOYrx1PdZQwKso95RAPzCGWQBH5j6Q==}
447
-
448
-
'@atproto/common@0.4.5':
449
-
resolution: {integrity: sha512-LFAGqHcxCI5+b31Xgk+VQQtZU258iGPpHJzNeHVcdh6teIKZi4C2l6YV+m+3CEz+yYcfP7jjUmgqesx7l9Arsg==}
450
-
451
-
'@atproto/crypto@0.4.2':
452
-
resolution: {integrity: sha512-aeOfPQYCDbhn2hV06oBF2KXrWjf/BK4yL8lfANJKSmKl3tKWCkiW/moi643rUXXxSE72KtWtQeqvNFYnnFJ0ig==}
453
-
454
-
'@atproto/did@0.1.3':
455
-
resolution: {integrity: sha512-ULD8Gw/KRRwLFZ2Z2L4DjmdOMrg8IYYlcjdSc+GQ2/QJSVnD2zaJJVTLd3vls121wGt/583rNaiZTT2DpBze4w==}
456
-
457
-
'@atproto/jwk-jose@0.1.2':
458
-
resolution: {integrity: sha512-lDwc/6lLn2aZ/JpyyggyjLFsJPMntrVzryyGUx5aNpuTS8SIuc4Ky0REhxqfLopQXJJZCuRRjagHG3uP05/moQ==}
459
-
460
-
'@atproto/jwk-webcrypto@0.1.2':
461
-
resolution: {integrity: sha512-vTBUbUZXh0GI+6KJiPGukmI4BQEHFAij8fJJ4WnReF/hefAs3ISZtrWZHGBebz+q2EcExYlnhhlmxvDzV7veGw==}
462
-
463
-
'@atproto/jwk@0.1.1':
464
-
resolution: {integrity: sha512-6h/bj1APUk7QcV9t/oA6+9DB5NZx9SZru9x+/pV5oHFI9Xz4ZuM5+dq1PfsJV54pZyqdnZ6W6M717cxoC7q7og==}
465
-
466
-
'@atproto/lexicon@0.4.3':
467
-
resolution: {integrity: sha512-lFVZXe1S1pJP0dcxvJuHP3r/a+EAIBwwU7jUK+r8iLhIja+ml6NmYv8KeFHmIJATh03spEQ9s02duDmFVdCoXg==}
468
-
469
-
'@atproto/oauth-client-node@0.2.3':
470
-
resolution: {integrity: sha512-crHxZaP9T/i7O9fOhALcFtW1EP/tVblDnWoaIiZ3vL/hvVLwSUad/wvG2WPcVURzLSbigDInhn7rZZSzLxJacg==}
471
-
472
-
'@atproto/oauth-client@0.3.3':
473
-
resolution: {integrity: sha512-qC6ekTdbUrXxDwuUC9jInWw7TuJYkl/EuReoLcvZ7dv9KbCUEuoYT0TNROLGp24cxRH65q/PVlp10Ov7lkxteg==}
474
-
475
-
'@atproto/oauth-types@0.2.1':
476
-
resolution: {integrity: sha512-hDisUXzcq5KU1HMuCYZ8Kcz7BePl7V11bFjjgZvND3mdSphiyBpJ8MCNn3QzAa6cXpFo0w9PDcYMAlCCRZHdVw==}
477
-
478
-
'@atproto/syntax@0.3.1':
479
-
resolution: {integrity: sha512-fzW0Mg1QUOVCWUD3RgEsDt6d1OZ6DdFmbKcDdbzUfh0t4rhtRAC05KbZYmxuMPWDAiJ4BbbQ5dkAc/mNypMXkw==}
480
-
481
-
'@atproto/xrpc@0.6.4':
482
-
resolution: {integrity: sha512-9ZAJ8nsXTqC4XFyS0E1Wlg7bAvonhXQNQ3Ocs1L1LIwFLXvsw/4fNpIHXxvXvqTCVeyHLbImOnE9UiO1c/qIYA==}
483
-
484
-
'@babel/code-frame@7.26.2':
485
-
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
486
-
engines: {node: '>=6.9.0'}
487
-
488
-
'@babel/compat-data@7.26.2':
489
-
resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==}
490
-
engines: {node: '>=6.9.0'}
491
-
492
-
'@babel/core@7.26.0':
493
-
resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
494
-
engines: {node: '>=6.9.0'}
495
-
496
-
'@babel/generator@7.26.2':
497
-
resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==}
498
-
engines: {node: '>=6.9.0'}
499
-
500
-
'@babel/helper-compilation-targets@7.25.9':
501
-
resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
502
-
engines: {node: '>=6.9.0'}
503
-
504
-
'@babel/helper-module-imports@7.25.9':
505
-
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
506
-
engines: {node: '>=6.9.0'}
507
-
508
-
'@babel/helper-module-transforms@7.26.0':
509
-
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
510
-
engines: {node: '>=6.9.0'}
511
-
peerDependencies:
512
-
'@babel/core': ^7.0.0
513
-
514
-
'@babel/helper-plugin-utils@7.25.9':
515
-
resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
516
-
engines: {node: '>=6.9.0'}
517
-
518
-
'@babel/helper-string-parser@7.25.9':
519
-
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
520
-
engines: {node: '>=6.9.0'}
521
-
522
-
'@babel/helper-validator-identifier@7.25.9':
523
-
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
524
-
engines: {node: '>=6.9.0'}
525
-
526
-
'@babel/helper-validator-option@7.25.9':
527
-
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
528
-
engines: {node: '>=6.9.0'}
529
-
530
-
'@babel/helpers@7.26.0':
531
-
resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
532
-
engines: {node: '>=6.9.0'}
533
-
534
-
'@babel/parser@7.26.2':
535
-
resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
536
-
engines: {node: '>=6.0.0'}
537
-
hasBin: true
538
-
539
-
'@babel/plugin-syntax-jsx@7.25.9':
540
-
resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
541
-
engines: {node: '>=6.9.0'}
542
-
peerDependencies:
543
-
'@babel/core': ^7.0.0-0
544
-
545
-
'@babel/plugin-syntax-typescript@7.25.9':
546
-
resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==}
547
-
engines: {node: '>=6.9.0'}
548
-
peerDependencies:
549
-
'@babel/core': ^7.0.0-0
550
-
551
-
'@babel/template@7.25.9':
552
-
resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
553
-
engines: {node: '>=6.9.0'}
554
-
555
-
'@babel/traverse@7.25.9':
556
-
resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==}
557
-
engines: {node: '>=6.9.0'}
558
-
559
-
'@babel/types@7.26.0':
560
-
resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
561
-
engines: {node: '>=6.9.0'}
562
-
563
-
'@badrap/valita@0.3.16':
564
-
resolution: {integrity: sha512-slP2blSd6A+xUBgGf+wW6adGd72ojBLxemU0jXQ0fXQcsZWYQ70wTLTJggs6+oxcAqN/bvYA3Ops8SqR2Imyaw==}
565
-
engines: {node: '>= 16'}
566
-
567
-
'@cbor-extract/cbor-extract-darwin-arm64@2.2.0':
568
-
resolution: {integrity: sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==}
569
-
cpu: [arm64]
570
-
os: [darwin]
571
-
572
-
'@cbor-extract/cbor-extract-darwin-x64@2.2.0':
573
-
resolution: {integrity: sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==}
574
-
cpu: [x64]
575
-
os: [darwin]
576
-
577
-
'@cbor-extract/cbor-extract-linux-arm64@2.2.0':
578
-
resolution: {integrity: sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==}
579
-
cpu: [arm64]
580
-
os: [linux]
581
-
582
-
'@cbor-extract/cbor-extract-linux-arm@2.2.0':
583
-
resolution: {integrity: sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==}
584
-
cpu: [arm]
585
-
os: [linux]
586
-
587
-
'@cbor-extract/cbor-extract-linux-x64@2.2.0':
588
-
resolution: {integrity: sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==}
589
-
cpu: [x64]
590
-
os: [linux]
591
-
592
-
'@cbor-extract/cbor-extract-win32-x64@2.2.0':
593
-
resolution: {integrity: sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==}
594
-
cpu: [x64]
595
-
os: [win32]
596
-
597
-
'@cspotcode/source-map-support@0.8.1':
598
-
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
599
-
engines: {node: '>=12'}
600
-
601
-
'@dnd-kit/accessibility@3.1.1':
602
-
resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
603
-
peerDependencies:
604
-
react: '>=16.8.0'
605
-
606
-
'@dnd-kit/core@6.3.1':
607
-
resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==}
608
-
peerDependencies:
609
-
react: '>=16.8.0'
610
-
react-dom: '>=16.8.0'
611
-
612
-
'@dnd-kit/modifiers@9.0.0':
613
-
resolution: {integrity: sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==}
614
-
peerDependencies:
615
-
'@dnd-kit/core': ^6.3.0
616
-
react: '>=16.8.0'
617
-
618
-
'@dnd-kit/sortable@10.0.0':
619
-
resolution: {integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==}
620
-
peerDependencies:
621
-
'@dnd-kit/core': ^6.3.0
622
-
react: '>=16.8.0'
623
-
624
-
'@dnd-kit/utilities@3.2.2':
625
-
resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==}
626
-
peerDependencies:
627
-
react: '>=16.8.0'
628
-
629
-
'@drizzle-team/brocli@0.10.2':
630
-
resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
631
-
632
-
'@esbuild-kit/core-utils@3.3.2':
633
-
resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
634
-
deprecated: 'Merged into tsx: https://tsx.is'
635
-
636
-
'@esbuild-kit/esm-loader@2.6.5':
637
-
resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
638
-
deprecated: 'Merged into tsx: https://tsx.is'
639
-
640
-
'@esbuild/aix-ppc64@0.19.12':
641
-
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
642
-
engines: {node: '>=12'}
643
-
cpu: [ppc64]
644
-
os: [aix]
645
-
646
-
'@esbuild/aix-ppc64@0.23.1':
647
-
resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
648
-
engines: {node: '>=18'}
649
-
cpu: [ppc64]
650
-
os: [aix]
651
-
652
-
'@esbuild/aix-ppc64@0.24.0':
653
-
resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
654
-
engines: {node: '>=18'}
655
-
cpu: [ppc64]
656
-
os: [aix]
657
-
658
-
'@esbuild/android-arm64@0.18.20':
659
-
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
660
-
engines: {node: '>=12'}
661
-
cpu: [arm64]
662
-
os: [android]
663
-
664
-
'@esbuild/android-arm64@0.19.12':
665
-
resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
666
-
engines: {node: '>=12'}
667
-
cpu: [arm64]
668
-
os: [android]
669
-
670
-
'@esbuild/android-arm64@0.23.1':
671
-
resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
672
-
engines: {node: '>=18'}
673
-
cpu: [arm64]
674
-
os: [android]
675
-
676
-
'@esbuild/android-arm64@0.24.0':
677
-
resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
678
-
engines: {node: '>=18'}
679
-
cpu: [arm64]
680
-
os: [android]
681
-
682
-
'@esbuild/android-arm@0.18.20':
683
-
resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
684
-
engines: {node: '>=12'}
685
-
cpu: [arm]
686
-
os: [android]
687
-
688
-
'@esbuild/android-arm@0.19.12':
689
-
resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
690
-
engines: {node: '>=12'}
691
-
cpu: [arm]
692
-
os: [android]
693
-
694
-
'@esbuild/android-arm@0.23.1':
695
-
resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
696
-
engines: {node: '>=18'}
697
-
cpu: [arm]
698
-
os: [android]
699
-
700
-
'@esbuild/android-arm@0.24.0':
701
-
resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
702
-
engines: {node: '>=18'}
703
-
cpu: [arm]
704
-
os: [android]
705
-
706
-
'@esbuild/android-x64@0.18.20':
707
-
resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
708
-
engines: {node: '>=12'}
709
-
cpu: [x64]
710
-
os: [android]
711
-
712
-
'@esbuild/android-x64@0.19.12':
713
-
resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
714
-
engines: {node: '>=12'}
715
-
cpu: [x64]
716
-
os: [android]
717
-
718
-
'@esbuild/android-x64@0.23.1':
719
-
resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
720
-
engines: {node: '>=18'}
721
-
cpu: [x64]
722
-
os: [android]
723
-
724
-
'@esbuild/android-x64@0.24.0':
725
-
resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
726
-
engines: {node: '>=18'}
727
-
cpu: [x64]
728
-
os: [android]
729
-
730
-
'@esbuild/darwin-arm64@0.18.20':
731
-
resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
732
-
engines: {node: '>=12'}
733
-
cpu: [arm64]
734
-
os: [darwin]
735
-
736
-
'@esbuild/darwin-arm64@0.19.12':
737
-
resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
738
-
engines: {node: '>=12'}
739
-
cpu: [arm64]
740
-
os: [darwin]
741
-
742
-
'@esbuild/darwin-arm64@0.23.1':
743
-
resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
744
-
engines: {node: '>=18'}
745
-
cpu: [arm64]
746
-
os: [darwin]
747
-
748
-
'@esbuild/darwin-arm64@0.24.0':
749
-
resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
750
-
engines: {node: '>=18'}
751
-
cpu: [arm64]
752
-
os: [darwin]
753
-
754
-
'@esbuild/darwin-x64@0.18.20':
755
-
resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
756
-
engines: {node: '>=12'}
757
-
cpu: [x64]
758
-
os: [darwin]
759
-
760
-
'@esbuild/darwin-x64@0.19.12':
761
-
resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
762
-
engines: {node: '>=12'}
763
-
cpu: [x64]
764
-
os: [darwin]
765
-
766
-
'@esbuild/darwin-x64@0.23.1':
767
-
resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
768
-
engines: {node: '>=18'}
769
-
cpu: [x64]
770
-
os: [darwin]
771
-
772
-
'@esbuild/darwin-x64@0.24.0':
773
-
resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
774
-
engines: {node: '>=18'}
775
-
cpu: [x64]
776
-
os: [darwin]
777
-
778
-
'@esbuild/freebsd-arm64@0.18.20':
779
-
resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
780
-
engines: {node: '>=12'}
781
-
cpu: [arm64]
782
-
os: [freebsd]
783
-
784
-
'@esbuild/freebsd-arm64@0.19.12':
785
-
resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
786
-
engines: {node: '>=12'}
787
-
cpu: [arm64]
788
-
os: [freebsd]
789
-
790
-
'@esbuild/freebsd-arm64@0.23.1':
791
-
resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
792
-
engines: {node: '>=18'}
793
-
cpu: [arm64]
794
-
os: [freebsd]
795
-
796
-
'@esbuild/freebsd-arm64@0.24.0':
797
-
resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
798
-
engines: {node: '>=18'}
799
-
cpu: [arm64]
800
-
os: [freebsd]
801
-
802
-
'@esbuild/freebsd-x64@0.18.20':
803
-
resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
804
-
engines: {node: '>=12'}
805
-
cpu: [x64]
806
-
os: [freebsd]
807
-
808
-
'@esbuild/freebsd-x64@0.19.12':
809
-
resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
810
-
engines: {node: '>=12'}
811
-
cpu: [x64]
812
-
os: [freebsd]
813
-
814
-
'@esbuild/freebsd-x64@0.23.1':
815
-
resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
816
-
engines: {node: '>=18'}
817
-
cpu: [x64]
818
-
os: [freebsd]
819
-
820
-
'@esbuild/freebsd-x64@0.24.0':
821
-
resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
822
-
engines: {node: '>=18'}
823
-
cpu: [x64]
824
-
os: [freebsd]
825
-
826
-
'@esbuild/linux-arm64@0.18.20':
827
-
resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
828
-
engines: {node: '>=12'}
829
-
cpu: [arm64]
830
-
os: [linux]
831
-
832
-
'@esbuild/linux-arm64@0.19.12':
833
-
resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
834
-
engines: {node: '>=12'}
835
-
cpu: [arm64]
836
-
os: [linux]
837
-
838
-
'@esbuild/linux-arm64@0.23.1':
839
-
resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
840
-
engines: {node: '>=18'}
841
-
cpu: [arm64]
842
-
os: [linux]
843
-
844
-
'@esbuild/linux-arm64@0.24.0':
845
-
resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
846
-
engines: {node: '>=18'}
847
-
cpu: [arm64]
848
-
os: [linux]
849
-
850
-
'@esbuild/linux-arm@0.18.20':
851
-
resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
852
-
engines: {node: '>=12'}
853
-
cpu: [arm]
854
-
os: [linux]
855
-
856
-
'@esbuild/linux-arm@0.19.12':
857
-
resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
858
-
engines: {node: '>=12'}
859
-
cpu: [arm]
860
-
os: [linux]
861
-
862
-
'@esbuild/linux-arm@0.23.1':
863
-
resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
864
-
engines: {node: '>=18'}
865
-
cpu: [arm]
866
-
os: [linux]
867
-
868
-
'@esbuild/linux-arm@0.24.0':
869
-
resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
870
-
engines: {node: '>=18'}
871
-
cpu: [arm]
872
-
os: [linux]
873
-
874
-
'@esbuild/linux-ia32@0.18.20':
875
-
resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
876
-
engines: {node: '>=12'}
877
-
cpu: [ia32]
878
-
os: [linux]
879
-
880
-
'@esbuild/linux-ia32@0.19.12':
881
-
resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
882
-
engines: {node: '>=12'}
883
-
cpu: [ia32]
884
-
os: [linux]
885
-
886
-
'@esbuild/linux-ia32@0.23.1':
887
-
resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
888
-
engines: {node: '>=18'}
889
-
cpu: [ia32]
890
-
os: [linux]
891
-
892
-
'@esbuild/linux-ia32@0.24.0':
893
-
resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
894
-
engines: {node: '>=18'}
895
-
cpu: [ia32]
896
-
os: [linux]
897
-
898
-
'@esbuild/linux-loong64@0.18.20':
899
-
resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
900
-
engines: {node: '>=12'}
901
-
cpu: [loong64]
902
-
os: [linux]
903
-
904
-
'@esbuild/linux-loong64@0.19.12':
905
-
resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
906
-
engines: {node: '>=12'}
907
-
cpu: [loong64]
908
-
os: [linux]
909
-
910
-
'@esbuild/linux-loong64@0.23.1':
911
-
resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
912
-
engines: {node: '>=18'}
913
-
cpu: [loong64]
914
-
os: [linux]
915
-
916
-
'@esbuild/linux-loong64@0.24.0':
917
-
resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
918
-
engines: {node: '>=18'}
919
-
cpu: [loong64]
920
-
os: [linux]
921
-
922
-
'@esbuild/linux-mips64el@0.18.20':
923
-
resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
924
-
engines: {node: '>=12'}
925
-
cpu: [mips64el]
926
-
os: [linux]
927
-
928
-
'@esbuild/linux-mips64el@0.19.12':
929
-
resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
930
-
engines: {node: '>=12'}
931
-
cpu: [mips64el]
932
-
os: [linux]
933
-
934
-
'@esbuild/linux-mips64el@0.23.1':
935
-
resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
936
-
engines: {node: '>=18'}
937
-
cpu: [mips64el]
938
-
os: [linux]
939
-
940
-
'@esbuild/linux-mips64el@0.24.0':
941
-
resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
942
-
engines: {node: '>=18'}
943
-
cpu: [mips64el]
944
-
os: [linux]
945
-
946
-
'@esbuild/linux-ppc64@0.18.20':
947
-
resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
948
-
engines: {node: '>=12'}
949
-
cpu: [ppc64]
950
-
os: [linux]
951
-
952
-
'@esbuild/linux-ppc64@0.19.12':
953
-
resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
954
-
engines: {node: '>=12'}
955
-
cpu: [ppc64]
956
-
os: [linux]
957
-
958
-
'@esbuild/linux-ppc64@0.23.1':
959
-
resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
960
-
engines: {node: '>=18'}
961
-
cpu: [ppc64]
962
-
os: [linux]
963
-
964
-
'@esbuild/linux-ppc64@0.24.0':
965
-
resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
966
-
engines: {node: '>=18'}
967
-
cpu: [ppc64]
968
-
os: [linux]
969
-
970
-
'@esbuild/linux-riscv64@0.18.20':
971
-
resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
972
-
engines: {node: '>=12'}
973
-
cpu: [riscv64]
974
-
os: [linux]
975
-
976
-
'@esbuild/linux-riscv64@0.19.12':
977
-
resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
978
-
engines: {node: '>=12'}
979
-
cpu: [riscv64]
980
-
os: [linux]
981
-
982
-
'@esbuild/linux-riscv64@0.23.1':
983
-
resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
984
-
engines: {node: '>=18'}
985
-
cpu: [riscv64]
986
-
os: [linux]
987
-
988
-
'@esbuild/linux-riscv64@0.24.0':
989
-
resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
990
-
engines: {node: '>=18'}
991
-
cpu: [riscv64]
992
-
os: [linux]
993
-
994
-
'@esbuild/linux-s390x@0.18.20':
995
-
resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
996
-
engines: {node: '>=12'}
997
-
cpu: [s390x]
998
-
os: [linux]
999
-
1000
-
'@esbuild/linux-s390x@0.19.12':
1001
-
resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
1002
-
engines: {node: '>=12'}
1003
-
cpu: [s390x]
1004
-
os: [linux]
1005
-
1006
-
'@esbuild/linux-s390x@0.23.1':
1007
-
resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
1008
-
engines: {node: '>=18'}
1009
-
cpu: [s390x]
1010
-
os: [linux]
1011
-
1012
-
'@esbuild/linux-s390x@0.24.0':
1013
-
resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
1014
-
engines: {node: '>=18'}
1015
-
cpu: [s390x]
1016
-
os: [linux]
1017
-
1018
-
'@esbuild/linux-x64@0.18.20':
1019
-
resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
1020
-
engines: {node: '>=12'}
1021
-
cpu: [x64]
1022
-
os: [linux]
1023
-
1024
-
'@esbuild/linux-x64@0.19.12':
1025
-
resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
1026
-
engines: {node: '>=12'}
1027
-
cpu: [x64]
1028
-
os: [linux]
1029
-
1030
-
'@esbuild/linux-x64@0.23.1':
1031
-
resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
1032
-
engines: {node: '>=18'}
1033
-
cpu: [x64]
1034
-
os: [linux]
1035
-
1036
-
'@esbuild/linux-x64@0.24.0':
1037
-
resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
1038
-
engines: {node: '>=18'}
1039
-
cpu: [x64]
1040
-
os: [linux]
1041
-
1042
-
'@esbuild/netbsd-x64@0.18.20':
1043
-
resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
1044
-
engines: {node: '>=12'}
1045
-
cpu: [x64]
1046
-
os: [netbsd]
1047
-
1048
-
'@esbuild/netbsd-x64@0.19.12':
1049
-
resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
1050
-
engines: {node: '>=12'}
1051
-
cpu: [x64]
1052
-
os: [netbsd]
1053
-
1054
-
'@esbuild/netbsd-x64@0.23.1':
1055
-
resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
1056
-
engines: {node: '>=18'}
1057
-
cpu: [x64]
1058
-
os: [netbsd]
1059
-
1060
-
'@esbuild/netbsd-x64@0.24.0':
1061
-
resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
1062
-
engines: {node: '>=18'}
1063
-
cpu: [x64]
1064
-
os: [netbsd]
1065
-
1066
-
'@esbuild/openbsd-arm64@0.23.1':
1067
-
resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
1068
-
engines: {node: '>=18'}
1069
-
cpu: [arm64]
1070
-
os: [openbsd]
1071
-
1072
-
'@esbuild/openbsd-arm64@0.24.0':
1073
-
resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
1074
-
engines: {node: '>=18'}
1075
-
cpu: [arm64]
1076
-
os: [openbsd]
1077
-
1078
-
'@esbuild/openbsd-x64@0.18.20':
1079
-
resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
1080
-
engines: {node: '>=12'}
1081
-
cpu: [x64]
1082
-
os: [openbsd]
1083
-
1084
-
'@esbuild/openbsd-x64@0.19.12':
1085
-
resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
1086
-
engines: {node: '>=12'}
1087
-
cpu: [x64]
1088
-
os: [openbsd]
1089
-
1090
-
'@esbuild/openbsd-x64@0.23.1':
1091
-
resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
1092
-
engines: {node: '>=18'}
1093
-
cpu: [x64]
1094
-
os: [openbsd]
1095
-
1096
-
'@esbuild/openbsd-x64@0.24.0':
1097
-
resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
1098
-
engines: {node: '>=18'}
1099
-
cpu: [x64]
1100
-
os: [openbsd]
1101
-
1102
-
'@esbuild/sunos-x64@0.18.20':
1103
-
resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
1104
-
engines: {node: '>=12'}
1105
-
cpu: [x64]
1106
-
os: [sunos]
1107
-
1108
-
'@esbuild/sunos-x64@0.19.12':
1109
-
resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
1110
-
engines: {node: '>=12'}
1111
-
cpu: [x64]
1112
-
os: [sunos]
1113
-
1114
-
'@esbuild/sunos-x64@0.23.1':
1115
-
resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
1116
-
engines: {node: '>=18'}
1117
-
cpu: [x64]
1118
-
os: [sunos]
1119
-
1120
-
'@esbuild/sunos-x64@0.24.0':
1121
-
resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
1122
-
engines: {node: '>=18'}
1123
-
cpu: [x64]
1124
-
os: [sunos]
1125
-
1126
-
'@esbuild/win32-arm64@0.18.20':
1127
-
resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
1128
-
engines: {node: '>=12'}
1129
-
cpu: [arm64]
1130
-
os: [win32]
1131
-
1132
-
'@esbuild/win32-arm64@0.19.12':
1133
-
resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
1134
-
engines: {node: '>=12'}
1135
-
cpu: [arm64]
1136
-
os: [win32]
1137
-
1138
-
'@esbuild/win32-arm64@0.23.1':
1139
-
resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
1140
-
engines: {node: '>=18'}
1141
-
cpu: [arm64]
1142
-
os: [win32]
1143
-
1144
-
'@esbuild/win32-arm64@0.24.0':
1145
-
resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
1146
-
engines: {node: '>=18'}
1147
-
cpu: [arm64]
1148
-
os: [win32]
1149
-
1150
-
'@esbuild/win32-ia32@0.18.20':
1151
-
resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
1152
-
engines: {node: '>=12'}
1153
-
cpu: [ia32]
1154
-
os: [win32]
1155
-
1156
-
'@esbuild/win32-ia32@0.19.12':
1157
-
resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
1158
-
engines: {node: '>=12'}
1159
-
cpu: [ia32]
1160
-
os: [win32]
1161
-
1162
-
'@esbuild/win32-ia32@0.23.1':
1163
-
resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
1164
-
engines: {node: '>=18'}
1165
-
cpu: [ia32]
1166
-
os: [win32]
1167
-
1168
-
'@esbuild/win32-ia32@0.24.0':
1169
-
resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
1170
-
engines: {node: '>=18'}
1171
-
cpu: [ia32]
1172
-
os: [win32]
1173
-
1174
-
'@esbuild/win32-x64@0.18.20':
1175
-
resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
1176
-
engines: {node: '>=12'}
1177
-
cpu: [x64]
1178
-
os: [win32]
1179
-
1180
-
'@esbuild/win32-x64@0.19.12':
1181
-
resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
1182
-
engines: {node: '>=12'}
1183
-
cpu: [x64]
1184
-
os: [win32]
1185
-
1186
-
'@esbuild/win32-x64@0.23.1':
1187
-
resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
1188
-
engines: {node: '>=18'}
1189
-
cpu: [x64]
1190
-
os: [win32]
1191
-
1192
-
'@esbuild/win32-x64@0.24.0':
1193
-
resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
1194
-
engines: {node: '>=18'}
1195
-
cpu: [x64]
1196
-
os: [win32]
1197
-
1198
-
'@eslint-community/eslint-utils@4.4.1':
1199
-
resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
1200
-
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1201
-
peerDependencies:
1202
-
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
1203
-
1204
-
'@eslint-community/regexpp@4.12.1':
1205
-
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
1206
-
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
1207
-
1208
-
'@eslint/config-array@0.19.0':
1209
-
resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==}
1210
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1211
-
1212
-
'@eslint/core@0.9.0':
1213
-
resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==}
1214
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1215
-
1216
-
'@eslint/eslintrc@3.2.0':
1217
-
resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
1218
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1219
-
1220
-
'@eslint/js@9.16.0':
1221
-
resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==}
1222
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1223
-
1224
-
'@eslint/object-schema@2.1.4':
1225
-
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
1226
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1227
-
1228
-
'@eslint/plugin-kit@0.2.3':
1229
-
resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==}
1230
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1231
-
1232
-
'@externdefs/collider@0.1.0':
1233
-
resolution: {integrity: sha512-vmFJEKHhftREiuhhK3WIMKk6bGfm7kM9c5HeVElFCbtqajXqCfwY/GR3f1G0qYWCvbtcoBhIZ2O8ia3A2/pjkw==}
1234
-
peerDependencies:
1235
-
'@badrap/valita': ^0.3.9
1236
-
1237
-
'@floating-ui/core@1.6.8':
1238
-
resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
1239
-
1240
-
'@floating-ui/dom@1.6.12':
1241
-
resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
1242
-
1243
-
'@floating-ui/react-dom@2.1.2':
1244
-
resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
1245
-
peerDependencies:
1246
-
react: '>=16.8.0'
1247
-
react-dom: '>=16.8.0'
1248
-
1249
-
'@floating-ui/utils@0.2.8':
1250
-
resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
1251
-
1252
-
'@hono/node-server@1.13.7':
1253
-
resolution: {integrity: sha512-kTfUMsoloVKtRA2fLiGSd9qBddmru9KadNyhJCwgKBxTiNkaAJEwkVN9KV/rS4HtmmNRtUh6P+YpmjRMl0d9vQ==}
1254
-
engines: {node: '>=18.14.1'}
1255
-
peerDependencies:
1256
-
hono: ^4
1257
-
1258
-
'@hookform/resolvers@3.9.1':
1259
-
resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==}
1260
-
peerDependencies:
1261
-
react-hook-form: ^7.0.0
1262
-
1263
-
'@humanfs/core@0.19.1':
1264
-
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
1265
-
engines: {node: '>=18.18.0'}
1266
-
1267
-
'@humanfs/node@0.16.6':
1268
-
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
1269
-
engines: {node: '>=18.18.0'}
1270
-
1271
-
'@humanwhocodes/module-importer@1.0.1':
1272
-
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
1273
-
engines: {node: '>=12.22'}
1274
-
1275
-
'@humanwhocodes/retry@0.3.1':
1276
-
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
1277
-
engines: {node: '>=18.18'}
1278
-
1279
-
'@humanwhocodes/retry@0.4.1':
1280
-
resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
1281
-
engines: {node: '>=18.18'}
1282
-
1283
-
'@ipld/dag-cbor@7.0.3':
1284
-
resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==}
1285
-
1286
-
'@isaacs/cliui@8.0.2':
1287
-
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
1288
-
engines: {node: '>=12'}
1289
-
1290
-
'@jridgewell/gen-mapping@0.3.5':
1291
-
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
1292
-
engines: {node: '>=6.0.0'}
1293
-
1294
-
'@jridgewell/resolve-uri@3.1.2':
1295
-
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
1296
-
engines: {node: '>=6.0.0'}
1297
-
1298
-
'@jridgewell/set-array@1.2.1':
1299
-
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
1300
-
engines: {node: '>=6.0.0'}
1301
-
1302
-
'@jridgewell/sourcemap-codec@1.5.0':
1303
-
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
1304
-
1305
-
'@jridgewell/trace-mapping@0.3.25':
1306
-
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
1307
-
1308
-
'@jridgewell/trace-mapping@0.3.9':
1309
-
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
1310
-
1311
-
'@libsql/client@0.14.0':
1312
-
resolution: {integrity: sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q==}
1313
-
1314
-
'@libsql/core@0.14.0':
1315
-
resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==}
1316
-
1317
-
'@libsql/darwin-arm64@0.4.7':
1318
-
resolution: {integrity: sha512-yOL742IfWUlUevnI5PdnIT4fryY3LYTdLm56bnY0wXBw7dhFcnjuA7jrH3oSVz2mjZTHujxoITgAE7V6Z+eAbg==}
1319
-
cpu: [arm64]
1320
-
os: [darwin]
1321
-
1322
-
'@libsql/darwin-x64@0.4.7':
1323
-
resolution: {integrity: sha512-ezc7V75+eoyyH07BO9tIyJdqXXcRfZMbKcLCeF8+qWK5nP8wWuMcfOVywecsXGRbT99zc5eNra4NEx6z5PkSsA==}
1324
-
cpu: [x64]
1325
-
os: [darwin]
1326
-
1327
-
'@libsql/hrana-client@0.7.0':
1328
-
resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==}
1329
-
1330
-
'@libsql/isomorphic-fetch@0.3.1':
1331
-
resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==}
1332
-
engines: {node: '>=18.0.0'}
1333
-
1334
-
'@libsql/isomorphic-ws@0.1.5':
1335
-
resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==}
1336
-
1337
-
'@libsql/linux-arm64-gnu@0.4.7':
1338
-
resolution: {integrity: sha512-WlX2VYB5diM4kFfNaYcyhw5y+UJAI3xcMkEUJZPtRDEIu85SsSFrQ+gvoKfcVh76B//ztSeEX2wl9yrjF7BBCA==}
1339
-
cpu: [arm64]
1340
-
os: [linux]
1341
-
1342
-
'@libsql/linux-arm64-musl@0.4.7':
1343
-
resolution: {integrity: sha512-6kK9xAArVRlTCpWeqnNMCoXW1pe7WITI378n4NpvU5EJ0Ok3aNTIC2nRPRjhro90QcnmLL1jPcrVwO4WD1U0xw==}
1344
-
cpu: [arm64]
1345
-
os: [linux]
1346
-
1347
-
'@libsql/linux-x64-gnu@0.4.7':
1348
-
resolution: {integrity: sha512-CMnNRCmlWQqqzlTw6NeaZXzLWI8bydaXDke63JTUCvu8R+fj/ENsLrVBtPDlxQ0wGsYdXGlrUCH8Qi9gJep0yQ==}
1349
-
cpu: [x64]
1350
-
os: [linux]
1351
-
1352
-
'@libsql/linux-x64-musl@0.4.7':
1353
-
resolution: {integrity: sha512-nI6tpS1t6WzGAt1Kx1n1HsvtBbZ+jHn0m7ogNNT6pQHZQj7AFFTIMeDQw/i/Nt5H38np1GVRNsFe99eSIMs9XA==}
1354
-
cpu: [x64]
1355
-
os: [linux]
1356
-
1357
-
'@libsql/win32-x64-msvc@0.4.7':
1358
-
resolution: {integrity: sha512-7pJzOWzPm6oJUxml+PCDRzYQ4A1hTMHAciTAHfFK4fkbDZX33nWPVG7Y3vqdKtslcwAzwmrNDc6sXy2nwWnbiw==}
1359
-
cpu: [x64]
1360
-
os: [win32]
1361
-
1362
-
'@neon-rs/load@0.0.4':
1363
-
resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==}
1364
-
1365
-
'@noble/curves@1.7.0':
1366
-
resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==}
1367
-
engines: {node: ^14.21.3 || >=16}
1368
-
1369
-
'@noble/hashes@1.6.0':
1370
-
resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==}
1371
-
engines: {node: ^14.21.3 || >=16}
1372
-
1373
-
'@noble/hashes@1.6.1':
1374
-
resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==}
1375
-
engines: {node: ^14.21.3 || >=16}
1376
-
1377
-
'@nodelib/fs.scandir@2.1.5':
1378
-
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
1379
-
engines: {node: '>= 8'}
1380
-
1381
-
'@nodelib/fs.stat@2.0.5':
1382
-
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
1383
-
engines: {node: '>= 8'}
1384
-
1385
-
'@nodelib/fs.walk@1.2.8':
1386
-
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
1387
-
engines: {node: '>= 8'}
1388
-
1389
-
'@opentelemetry/api-logs@0.52.1':
1390
-
resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==}
1391
-
engines: {node: '>=14'}
1392
-
1393
-
'@opentelemetry/api-logs@0.53.0':
1394
-
resolution: {integrity: sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==}
1395
-
engines: {node: '>=14'}
1396
-
1397
-
'@opentelemetry/api-logs@0.54.2':
1398
-
resolution: {integrity: sha512-4MTVwwmLgUh5QrJnZpYo6YRO5IBLAggf2h8gWDblwRagDStY13aEvt7gGk3jewrMaPlHiF83fENhIx0HO97/cQ==}
1399
-
engines: {node: '>=14'}
1400
-
1401
-
'@opentelemetry/api@1.9.0':
1402
-
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
1403
-
engines: {node: '>=8.0.0'}
1404
-
1405
-
'@opentelemetry/context-async-hooks@1.29.0':
1406
-
resolution: {integrity: sha512-TKT91jcFXgHyIDF1lgJF3BHGIakn6x0Xp7Tq3zoS3TMPzT9IlP0xEavWP8C1zGjU9UmZP2VR1tJhW9Az1A3w8Q==}
1407
-
engines: {node: '>=14'}
1408
-
peerDependencies:
1409
-
'@opentelemetry/api': '>=1.0.0 <1.10.0'
1410
-
1411
-
'@opentelemetry/core@1.26.0':
1412
-
resolution: {integrity: sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==}
1413
-
engines: {node: '>=14'}
1414
-
peerDependencies:
1415
-
'@opentelemetry/api': '>=1.0.0 <1.10.0'
1416
-
1417
-
'@opentelemetry/core@1.29.0':
1418
-
resolution: {integrity: sha512-gmT7vAreXl0DTHD2rVZcw3+l2g84+5XiHIqdBUxXbExymPCvSsGOpiwMmn8nkiJur28STV31wnhIDrzWDPzjfA==}
1419
-
engines: {node: '>=14'}
1420
-
peerDependencies:
1421
-
'@opentelemetry/api': '>=1.0.0 <1.10.0'
1422
-
1423
-
'@opentelemetry/instrumentation-amqplib@0.43.0':
1424
-
resolution: {integrity: sha512-ALjfQC+0dnIEcvNYsbZl/VLh7D2P1HhFF4vicRKHhHFIUV3Shpg4kXgiek5PLhmeKSIPiUB25IYH5RIneclL4A==}
1425
-
engines: {node: '>=14'}
1426
-
peerDependencies:
1427
-
'@opentelemetry/api': ^1.3.0
1428
-
1429
-
'@opentelemetry/instrumentation-connect@0.40.0':
1430
-
resolution: {integrity: sha512-3aR/3YBQ160siitwwRLjwqrv2KBT16897+bo6yz8wIfel6nWOxTZBJudcbsK3p42pTC7qrbotJ9t/1wRLpv79Q==}
1431
-
engines: {node: '>=14'}
1432
-
peerDependencies:
1433
-
'@opentelemetry/api': ^1.3.0
1434
-
1435
-
'@opentelemetry/instrumentation-dataloader@0.12.0':
1436
-
resolution: {integrity: sha512-pnPxatoFE0OXIZDQhL2okF//dmbiWFzcSc8pUg9TqofCLYZySSxDCgQc69CJBo5JnI3Gz1KP+mOjS4WAeRIH4g==}
1437
-
engines: {node: '>=14'}
1438
-
peerDependencies:
1439
-
'@opentelemetry/api': ^1.3.0
1440
-
1441
-
'@opentelemetry/instrumentation-express@0.44.0':
1442
-
resolution: {integrity: sha512-GWgibp6Q0wxyFaaU8ERIgMMYgzcHmGrw3ILUtGchLtLncHNOKk0SNoWGqiylXWWT4HTn5XdV8MGawUgpZh80cA==}
1443
-
engines: {node: '>=14'}
1444
-
peerDependencies:
1445
-
'@opentelemetry/api': ^1.3.0
1446
-
1447
-
'@opentelemetry/instrumentation-fastify@0.41.0':
1448
-
resolution: {integrity: sha512-pNRjFvf0mvqfJueaeL/qEkuGJwgtE5pgjIHGYwjc2rMViNCrtY9/Sf+Nu8ww6dDd/Oyk2fwZZP7i0XZfCnETrA==}
1449
-
engines: {node: '>=14'}
1450
-
peerDependencies:
1451
-
'@opentelemetry/api': ^1.3.0
1452
-
1453
-
'@opentelemetry/instrumentation-fs@0.16.0':
1454
-
resolution: {integrity: sha512-hMDRUxV38ln1R3lNz6osj3YjlO32ykbHqVrzG7gEhGXFQfu7LJUx8t9tEwE4r2h3CD4D0Rw4YGDU4yF4mP3ilg==}
1455
-
engines: {node: '>=14'}
1456
-
peerDependencies:
1457
-
'@opentelemetry/api': ^1.3.0
1458
-
1459
-
'@opentelemetry/instrumentation-generic-pool@0.39.0':
1460
-
resolution: {integrity: sha512-y4v8Y+tSfRB3NNBvHjbjrn7rX/7sdARG7FuK6zR8PGb28CTa0kHpEGCJqvL9L8xkTNvTXo+lM36ajFGUaK1aNw==}
1461
-
engines: {node: '>=14'}
1462
-
peerDependencies:
1463
-
'@opentelemetry/api': ^1.3.0
1464
-
1465
-
'@opentelemetry/instrumentation-graphql@0.44.0':
1466
-
resolution: {integrity: sha512-FYXTe3Bv96aNpYktqm86BFUTpjglKD0kWI5T5bxYkLUPEPvFn38vWGMJTGrDMVou/i55E4jlWvcm6hFIqLsMbg==}
1467
-
engines: {node: '>=14'}
1468
-
peerDependencies:
1469
-
'@opentelemetry/api': ^1.3.0
1470
-
1471
-
'@opentelemetry/instrumentation-hapi@0.41.0':
1472
-
resolution: {integrity: sha512-jKDrxPNXDByPlYcMdZjNPYCvw0SQJjN+B1A+QH+sx+sAHsKSAf9hwFiJSrI6C4XdOls43V/f/fkp9ITkHhKFbQ==}
1473
-
engines: {node: '>=14'}
1474
-
peerDependencies:
1475
-
'@opentelemetry/api': ^1.3.0
1476
-
1477
-
'@opentelemetry/instrumentation-http@0.53.0':
1478
-
resolution: {integrity: sha512-H74ErMeDuZfj7KgYCTOFGWF5W9AfaPnqLQQxeFq85+D29wwV2yqHbz2IKLYpkOh7EI6QwDEl7rZCIxjJLyc/CQ==}
1479
-
engines: {node: '>=14'}
1480
-
peerDependencies:
1481
-
'@opentelemetry/api': ^1.3.0
1482
-
1483
-
'@opentelemetry/instrumentation-ioredis@0.43.0':
1484
-
resolution: {integrity: sha512-i3Dke/LdhZbiUAEImmRG3i7Dimm/BD7t8pDDzwepSvIQ6s2X6FPia7561gw+64w+nx0+G9X14D7rEfaMEmmjig==}
1485
-
engines: {node: '>=14'}
1486
-
peerDependencies:
1487
-
'@opentelemetry/api': ^1.3.0
1488
-
1489
-
'@opentelemetry/instrumentation-kafkajs@0.4.0':
1490
-
resolution: {integrity: sha512-I9VwDG314g7SDL4t8kD/7+1ytaDBRbZQjhVaQaVIDR8K+mlsoBhLsWH79yHxhHQKvwCSZwqXF+TiTOhoQVUt7A==}
1491
-
engines: {node: '>=14'}
1492
-
peerDependencies:
1493
-
'@opentelemetry/api': ^1.3.0
1494
-
1495
-
'@opentelemetry/instrumentation-knex@0.41.0':
1496
-
resolution: {integrity: sha512-OhI1SlLv5qnsnm2dOVrian/x3431P75GngSpnR7c4fcVFv7prXGYu29Z6ILRWJf/NJt6fkbySmwdfUUnFnHCTg==}
1497
-
engines: {node: '>=14'}
1498
-
peerDependencies:
1499
-
'@opentelemetry/api': ^1.3.0
1500
-
1501
-
'@opentelemetry/instrumentation-koa@0.43.0':
1502
-
resolution: {integrity: sha512-lDAhSnmoTIN6ELKmLJBplXzT/Jqs5jGZehuG22EdSMaTwgjMpxMDI1YtlKEhiWPWkrz5LUsd0aOO0ZRc9vn3AQ==}
1503
-
engines: {node: '>=14'}
1504
-
peerDependencies:
1505
-
'@opentelemetry/api': ^1.3.0
1506
-
1507
-
'@opentelemetry/instrumentation-lru-memoizer@0.40.0':
1508
-
resolution: {integrity: sha512-21xRwZsEdMPnROu/QsaOIODmzw59IYpGFmuC4aFWvMj6stA8+Ei1tX67nkarJttlNjoM94um0N4X26AD7ff54A==}
1509
-
engines: {node: '>=14'}
1510
-
peerDependencies:
1511
-
'@opentelemetry/api': ^1.3.0
1512
-
1513
-
'@opentelemetry/instrumentation-mongodb@0.48.0':
1514
-
resolution: {integrity: sha512-9YWvaGvrrcrydMsYGLu0w+RgmosLMKe3kv/UNlsPy8RLnCkN2z+bhhbjjjuxtUmvEuKZMCoXFluABVuBr1yhjw==}
1515
-
engines: {node: '>=14'}
1516
-
peerDependencies:
1517
-
'@opentelemetry/api': ^1.3.0
1518
-
1519
-
'@opentelemetry/instrumentation-mongoose@0.42.0':
1520
-
resolution: {integrity: sha512-AnWv+RaR86uG3qNEMwt3plKX1ueRM7AspfszJYVkvkehiicC3bHQA6vWdb6Zvy5HAE14RyFbu9+2hUUjR2NSyg==}
1521
-
engines: {node: '>=14'}
1522
-
peerDependencies:
1523
-
'@opentelemetry/api': ^1.3.0
1524
-
1525
-
'@opentelemetry/instrumentation-mysql2@0.41.0':
1526
-
resolution: {integrity: sha512-REQB0x+IzVTpoNgVmy5b+UnH1/mDByrneimP6sbDHkp1j8QOl1HyWOrBH/6YWR0nrbU3l825Em5PlybjT3232g==}
1527
-
engines: {node: '>=14'}
1528
-
peerDependencies:
1529
-
'@opentelemetry/api': ^1.3.0
1530
-
1531
-
'@opentelemetry/instrumentation-mysql@0.41.0':
1532
-
resolution: {integrity: sha512-jnvrV6BsQWyHS2qb2fkfbfSb1R/lmYwqEZITwufuRl37apTopswu9izc0b1CYRp/34tUG/4k/V39PND6eyiNvw==}
1533
-
engines: {node: '>=14'}
1534
-
peerDependencies:
1535
-
'@opentelemetry/api': ^1.3.0
1536
-
1537
-
'@opentelemetry/instrumentation-nestjs-core@0.40.0':
1538
-
resolution: {integrity: sha512-WF1hCUed07vKmf5BzEkL0wSPinqJgH7kGzOjjMAiTGacofNXjb/y4KQ8loj2sNsh5C/NN7s1zxQuCgbWbVTGKg==}
1539
-
engines: {node: '>=14'}
1540
-
peerDependencies:
1541
-
'@opentelemetry/api': ^1.3.0
1542
-
1543
-
'@opentelemetry/instrumentation-pg@0.44.0':
1544
-
resolution: {integrity: sha512-oTWVyzKqXud1BYEGX1loo2o4k4vaU1elr3vPO8NZolrBtFvQ34nx4HgUaexUDuEog00qQt+MLR5gws/p+JXMLQ==}
1545
-
engines: {node: '>=14'}
1546
-
peerDependencies:
1547
-
'@opentelemetry/api': ^1.3.0
1548
-
1549
-
'@opentelemetry/instrumentation-redis-4@0.42.0':
1550
-
resolution: {integrity: sha512-NaD+t2JNcOzX/Qa7kMy68JbmoVIV37fT/fJYzLKu2Wwd+0NCxt+K2OOsOakA8GVg8lSpFdbx4V/suzZZ2Pvdjg==}
1551
-
engines: {node: '>=14'}
1552
-
peerDependencies:
1553
-
'@opentelemetry/api': ^1.3.0
1554
-
1555
-
'@opentelemetry/instrumentation-tedious@0.15.0':
1556
-
resolution: {integrity: sha512-Kb7yo8Zsq2TUwBbmwYgTAMPK0VbhoS8ikJ6Bup9KrDtCx2JC01nCb+M0VJWXt7tl0+5jARUbKWh5jRSoImxdCw==}
1557
-
engines: {node: '>=14'}
1558
-
peerDependencies:
1559
-
'@opentelemetry/api': ^1.3.0
1560
-
1561
-
'@opentelemetry/instrumentation-undici@0.6.0':
1562
-
resolution: {integrity: sha512-ABJBhm5OdhGmbh0S/fOTE4N69IZ00CsHC5ijMYfzbw3E5NwLgpQk5xsljaECrJ8wz1SfXbO03FiSuu5AyRAkvQ==}
1563
-
engines: {node: '>=14'}
1564
-
peerDependencies:
1565
-
'@opentelemetry/api': ^1.7.0
1566
-
1567
-
'@opentelemetry/instrumentation@0.52.1':
1568
-
resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==}
1569
-
engines: {node: '>=14'}
1570
-
peerDependencies:
1571
-
'@opentelemetry/api': ^1.3.0
1572
-
1573
-
'@opentelemetry/instrumentation@0.53.0':
1574
-
resolution: {integrity: sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==}
1575
-
engines: {node: '>=14'}
1576
-
peerDependencies:
1577
-
'@opentelemetry/api': ^1.3.0
1578
-
1579
-
'@opentelemetry/instrumentation@0.54.2':
1580
-
resolution: {integrity: sha512-go6zpOVoZVztT9r1aPd79Fr3OWiD4N24bCPJsIKkBses8oyFo12F/Ew3UBTdIu6hsW4HC4MVEJygG6TEyJI/lg==}
1581
-
engines: {node: '>=14'}
1582
-
peerDependencies:
1583
-
'@opentelemetry/api': ^1.3.0
1584
-
1585
-
'@opentelemetry/redis-common@0.36.2':
1586
-
resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==}
1587
-
engines: {node: '>=14'}
1588
-
1589
-
'@opentelemetry/resources@1.29.0':
1590
-
resolution: {integrity: sha512-s7mLXuHZE7RQr1wwweGcaRp3Q4UJJ0wazeGlc/N5/XSe6UyXfsh1UQGMADYeg7YwD+cEdMtU1yJAUXdnFzYzyQ==}
1591
-
engines: {node: '>=14'}
1592
-
peerDependencies:
1593
-
'@opentelemetry/api': '>=1.0.0 <1.10.0'
1594
-
1595
-
'@opentelemetry/sdk-trace-base@1.29.0':
1596
-
resolution: {integrity: sha512-hEOpAYLKXF3wGJpXOtWsxEtqBgde0SCv+w+jvr3/UusR4ll3QrENEGnSl1WDCyRrpqOQ5NCNOvZch9UFVa7MnQ==}
1597
-
engines: {node: '>=14'}
1598
-
peerDependencies:
1599
-
'@opentelemetry/api': '>=1.0.0 <1.10.0'
1600
-
1601
-
'@opentelemetry/semantic-conventions@1.27.0':
1602
-
resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==}
1603
-
engines: {node: '>=14'}
1604
-
1605
-
'@opentelemetry/semantic-conventions@1.28.0':
1606
-
resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==}
1607
-
engines: {node: '>=14'}
1608
-
1609
-
'@opentelemetry/sql-common@0.40.1':
1610
-
resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==}
1611
-
engines: {node: '>=14'}
1612
-
peerDependencies:
1613
-
'@opentelemetry/api': ^1.1.0
1614
-
1615
-
'@pkgjs/parseargs@0.11.0':
1616
-
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
1617
-
engines: {node: '>=14'}
1618
-
1619
-
'@prisma/instrumentation@5.19.1':
1620
-
resolution: {integrity: sha512-VLnzMQq7CWroL5AeaW0Py2huiNKeoMfCH3SUxstdzPrlWQi6UQ9UrfcbUkNHlVFqOMacqy8X/8YtE0kuKDpD9w==}
1621
-
1622
-
'@radix-ui/primitive@1.1.0':
1623
-
resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
1624
-
1625
-
'@radix-ui/primitive@1.1.1':
1626
-
resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==}
1627
-
1628
-
'@radix-ui/react-arrow@1.1.0':
1629
-
resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==}
1630
-
peerDependencies:
1631
-
'@types/react': '*'
1632
-
'@types/react-dom': '*'
1633
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1634
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1635
-
peerDependenciesMeta:
1636
-
'@types/react':
1637
-
optional: true
1638
-
'@types/react-dom':
1639
-
optional: true
1640
-
1641
-
'@radix-ui/react-arrow@1.1.1':
1642
-
resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==}
1643
-
peerDependencies:
1644
-
'@types/react': '*'
1645
-
'@types/react-dom': '*'
1646
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1647
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1648
-
peerDependenciesMeta:
1649
-
'@types/react':
1650
-
optional: true
1651
-
'@types/react-dom':
1652
-
optional: true
1653
-
1654
-
'@radix-ui/react-avatar@1.1.1':
1655
-
resolution: {integrity: sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==}
1656
-
peerDependencies:
1657
-
'@types/react': '*'
1658
-
'@types/react-dom': '*'
1659
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1660
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1661
-
peerDependenciesMeta:
1662
-
'@types/react':
1663
-
optional: true
1664
-
'@types/react-dom':
1665
-
optional: true
1666
-
1667
-
'@radix-ui/react-collapsible@1.1.1':
1668
-
resolution: {integrity: sha512-1///SnrfQHJEofLokyczERxQbWfCGQlQ2XsCZMucVs6it+lq9iw4vXy+uDn1edlb58cOZOWSldnfPAYcT4O/Yg==}
1669
-
peerDependencies:
1670
-
'@types/react': '*'
1671
-
'@types/react-dom': '*'
1672
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1673
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1674
-
peerDependenciesMeta:
1675
-
'@types/react':
1676
-
optional: true
1677
-
'@types/react-dom':
1678
-
optional: true
1679
-
1680
-
'@radix-ui/react-collection@1.1.1':
1681
-
resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==}
1682
-
peerDependencies:
1683
-
'@types/react': '*'
1684
-
'@types/react-dom': '*'
1685
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1686
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1687
-
peerDependenciesMeta:
1688
-
'@types/react':
1689
-
optional: true
1690
-
'@types/react-dom':
1691
-
optional: true
1692
-
1693
-
'@radix-ui/react-compose-refs@1.1.0':
1694
-
resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
1695
-
peerDependencies:
1696
-
'@types/react': '*'
1697
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1698
-
peerDependenciesMeta:
1699
-
'@types/react':
1700
-
optional: true
1701
-
1702
-
'@radix-ui/react-compose-refs@1.1.1':
1703
-
resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==}
1704
-
peerDependencies:
1705
-
'@types/react': '*'
1706
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1707
-
peerDependenciesMeta:
1708
-
'@types/react':
1709
-
optional: true
1710
-
1711
-
'@radix-ui/react-context@1.1.0':
1712
-
resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
1713
-
peerDependencies:
1714
-
'@types/react': '*'
1715
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1716
-
peerDependenciesMeta:
1717
-
'@types/react':
1718
-
optional: true
1719
-
1720
-
'@radix-ui/react-context@1.1.1':
1721
-
resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
1722
-
peerDependencies:
1723
-
'@types/react': '*'
1724
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1725
-
peerDependenciesMeta:
1726
-
'@types/react':
1727
-
optional: true
1728
-
1729
-
'@radix-ui/react-dialog@1.1.4':
1730
-
resolution: {integrity: sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==}
1731
-
peerDependencies:
1732
-
'@types/react': '*'
1733
-
'@types/react-dom': '*'
1734
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1735
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1736
-
peerDependenciesMeta:
1737
-
'@types/react':
1738
-
optional: true
1739
-
'@types/react-dom':
1740
-
optional: true
1741
-
1742
-
'@radix-ui/react-direction@1.1.0':
1743
-
resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
1744
-
peerDependencies:
1745
-
'@types/react': '*'
1746
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1747
-
peerDependenciesMeta:
1748
-
'@types/react':
1749
-
optional: true
1750
-
1751
-
'@radix-ui/react-dismissable-layer@1.1.1':
1752
-
resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==}
1753
-
peerDependencies:
1754
-
'@types/react': '*'
1755
-
'@types/react-dom': '*'
1756
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1757
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1758
-
peerDependenciesMeta:
1759
-
'@types/react':
1760
-
optional: true
1761
-
'@types/react-dom':
1762
-
optional: true
1763
-
1764
-
'@radix-ui/react-dismissable-layer@1.1.3':
1765
-
resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==}
1766
-
peerDependencies:
1767
-
'@types/react': '*'
1768
-
'@types/react-dom': '*'
1769
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1770
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1771
-
peerDependenciesMeta:
1772
-
'@types/react':
1773
-
optional: true
1774
-
'@types/react-dom':
1775
-
optional: true
1776
-
1777
-
'@radix-ui/react-dropdown-menu@2.1.4':
1778
-
resolution: {integrity: sha512-iXU1Ab5ecM+yEepGAWK8ZhMyKX4ubFdCNtol4sT9D0OVErG9PNElfx3TQhjw7n7BC5nFVz68/5//clWy+8TXzA==}
1779
-
peerDependencies:
1780
-
'@types/react': '*'
1781
-
'@types/react-dom': '*'
1782
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1783
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1784
-
peerDependenciesMeta:
1785
-
'@types/react':
1786
-
optional: true
1787
-
'@types/react-dom':
1788
-
optional: true
1789
-
1790
-
'@radix-ui/react-focus-guards@1.1.1':
1791
-
resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
1792
-
peerDependencies:
1793
-
'@types/react': '*'
1794
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1795
-
peerDependenciesMeta:
1796
-
'@types/react':
1797
-
optional: true
1798
-
1799
-
'@radix-ui/react-focus-scope@1.1.1':
1800
-
resolution: {integrity: sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==}
1801
-
peerDependencies:
1802
-
'@types/react': '*'
1803
-
'@types/react-dom': '*'
1804
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1805
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1806
-
peerDependenciesMeta:
1807
-
'@types/react':
1808
-
optional: true
1809
-
'@types/react-dom':
1810
-
optional: true
1811
-
1812
-
'@radix-ui/react-icons@1.3.2':
1813
-
resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==}
1814
-
peerDependencies:
1815
-
react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc
1816
-
1817
-
'@radix-ui/react-id@1.1.0':
1818
-
resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
1819
-
peerDependencies:
1820
-
'@types/react': '*'
1821
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1822
-
peerDependenciesMeta:
1823
-
'@types/react':
1824
-
optional: true
1825
-
1826
-
'@radix-ui/react-label@2.1.0':
1827
-
resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==}
1828
-
peerDependencies:
1829
-
'@types/react': '*'
1830
-
'@types/react-dom': '*'
1831
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1832
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1833
-
peerDependenciesMeta:
1834
-
'@types/react':
1835
-
optional: true
1836
-
'@types/react-dom':
1837
-
optional: true
1838
-
1839
-
'@radix-ui/react-menu@2.1.4':
1840
-
resolution: {integrity: sha512-BnOgVoL6YYdHAG6DtXONaR29Eq4nvbi8rutrV/xlr3RQCMMb3yqP85Qiw/3NReozrSW+4dfLkK+rc1hb4wPU/A==}
1841
-
peerDependencies:
1842
-
'@types/react': '*'
1843
-
'@types/react-dom': '*'
1844
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1845
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1846
-
peerDependenciesMeta:
1847
-
'@types/react':
1848
-
optional: true
1849
-
'@types/react-dom':
1850
-
optional: true
1851
-
1852
-
'@radix-ui/react-popper@1.2.0':
1853
-
resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==}
1854
-
peerDependencies:
1855
-
'@types/react': '*'
1856
-
'@types/react-dom': '*'
1857
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1858
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1859
-
peerDependenciesMeta:
1860
-
'@types/react':
1861
-
optional: true
1862
-
'@types/react-dom':
1863
-
optional: true
1864
-
1865
-
'@radix-ui/react-popper@1.2.1':
1866
-
resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==}
1867
-
peerDependencies:
1868
-
'@types/react': '*'
1869
-
'@types/react-dom': '*'
1870
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1871
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1872
-
peerDependenciesMeta:
1873
-
'@types/react':
1874
-
optional: true
1875
-
'@types/react-dom':
1876
-
optional: true
1877
-
1878
-
'@radix-ui/react-portal@1.1.2':
1879
-
resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==}
1880
-
peerDependencies:
1881
-
'@types/react': '*'
1882
-
'@types/react-dom': '*'
1883
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1884
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1885
-
peerDependenciesMeta:
1886
-
'@types/react':
1887
-
optional: true
1888
-
'@types/react-dom':
1889
-
optional: true
1890
-
1891
-
'@radix-ui/react-portal@1.1.3':
1892
-
resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==}
1893
-
peerDependencies:
1894
-
'@types/react': '*'
1895
-
'@types/react-dom': '*'
1896
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1897
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1898
-
peerDependenciesMeta:
1899
-
'@types/react':
1900
-
optional: true
1901
-
'@types/react-dom':
1902
-
optional: true
1903
-
1904
-
'@radix-ui/react-presence@1.1.1':
1905
-
resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==}
1906
-
peerDependencies:
1907
-
'@types/react': '*'
1908
-
'@types/react-dom': '*'
1909
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1910
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1911
-
peerDependenciesMeta:
1912
-
'@types/react':
1913
-
optional: true
1914
-
'@types/react-dom':
1915
-
optional: true
1916
-
1917
-
'@radix-ui/react-presence@1.1.2':
1918
-
resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==}
1919
-
peerDependencies:
1920
-
'@types/react': '*'
1921
-
'@types/react-dom': '*'
1922
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1923
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1924
-
peerDependenciesMeta:
1925
-
'@types/react':
1926
-
optional: true
1927
-
'@types/react-dom':
1928
-
optional: true
1929
-
1930
-
'@radix-ui/react-primitive@2.0.0':
1931
-
resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
1932
-
peerDependencies:
1933
-
'@types/react': '*'
1934
-
'@types/react-dom': '*'
1935
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1936
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1937
-
peerDependenciesMeta:
1938
-
'@types/react':
1939
-
optional: true
1940
-
'@types/react-dom':
1941
-
optional: true
1942
-
1943
-
'@radix-ui/react-primitive@2.0.1':
1944
-
resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==}
1945
-
peerDependencies:
1946
-
'@types/react': '*'
1947
-
'@types/react-dom': '*'
1948
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1949
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1950
-
peerDependenciesMeta:
1951
-
'@types/react':
1952
-
optional: true
1953
-
'@types/react-dom':
1954
-
optional: true
1955
-
1956
-
'@radix-ui/react-roving-focus@1.1.1':
1957
-
resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==}
1958
-
peerDependencies:
1959
-
'@types/react': '*'
1960
-
'@types/react-dom': '*'
1961
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1962
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1963
-
peerDependenciesMeta:
1964
-
'@types/react':
1965
-
optional: true
1966
-
'@types/react-dom':
1967
-
optional: true
1968
-
1969
-
'@radix-ui/react-separator@1.1.0':
1970
-
resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==}
1971
-
peerDependencies:
1972
-
'@types/react': '*'
1973
-
'@types/react-dom': '*'
1974
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1975
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1976
-
peerDependenciesMeta:
1977
-
'@types/react':
1978
-
optional: true
1979
-
'@types/react-dom':
1980
-
optional: true
1981
-
1982
-
'@radix-ui/react-slot@1.1.0':
1983
-
resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
1984
-
peerDependencies:
1985
-
'@types/react': '*'
1986
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1987
-
peerDependenciesMeta:
1988
-
'@types/react':
1989
-
optional: true
1990
-
1991
-
'@radix-ui/react-slot@1.1.1':
1992
-
resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==}
1993
-
peerDependencies:
1994
-
'@types/react': '*'
1995
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
1996
-
peerDependenciesMeta:
1997
-
'@types/react':
1998
-
optional: true
1999
-
2000
-
'@radix-ui/react-tooltip@1.1.4':
2001
-
resolution: {integrity: sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==}
2002
-
peerDependencies:
2003
-
'@types/react': '*'
2004
-
'@types/react-dom': '*'
2005
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2006
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2007
-
peerDependenciesMeta:
2008
-
'@types/react':
2009
-
optional: true
2010
-
'@types/react-dom':
2011
-
optional: true
2012
-
2013
-
'@radix-ui/react-use-callback-ref@1.1.0':
2014
-
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
2015
-
peerDependencies:
2016
-
'@types/react': '*'
2017
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2018
-
peerDependenciesMeta:
2019
-
'@types/react':
2020
-
optional: true
2021
-
2022
-
'@radix-ui/react-use-controllable-state@1.1.0':
2023
-
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
2024
-
peerDependencies:
2025
-
'@types/react': '*'
2026
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2027
-
peerDependenciesMeta:
2028
-
'@types/react':
2029
-
optional: true
2030
-
2031
-
'@radix-ui/react-use-escape-keydown@1.1.0':
2032
-
resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
2033
-
peerDependencies:
2034
-
'@types/react': '*'
2035
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2036
-
peerDependenciesMeta:
2037
-
'@types/react':
2038
-
optional: true
2039
-
2040
-
'@radix-ui/react-use-layout-effect@1.1.0':
2041
-
resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
2042
-
peerDependencies:
2043
-
'@types/react': '*'
2044
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2045
-
peerDependenciesMeta:
2046
-
'@types/react':
2047
-
optional: true
2048
-
2049
-
'@radix-ui/react-use-rect@1.1.0':
2050
-
resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
2051
-
peerDependencies:
2052
-
'@types/react': '*'
2053
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2054
-
peerDependenciesMeta:
2055
-
'@types/react':
2056
-
optional: true
2057
-
2058
-
'@radix-ui/react-use-size@1.1.0':
2059
-
resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
2060
-
peerDependencies:
2061
-
'@types/react': '*'
2062
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2063
-
peerDependenciesMeta:
2064
-
'@types/react':
2065
-
optional: true
2066
-
2067
-
'@radix-ui/react-visually-hidden@1.1.0':
2068
-
resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==}
2069
-
peerDependencies:
2070
-
'@types/react': '*'
2071
-
'@types/react-dom': '*'
2072
-
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2073
-
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
2074
-
peerDependenciesMeta:
2075
-
'@types/react':
2076
-
optional: true
2077
-
'@types/react-dom':
2078
-
optional: true
2079
-
2080
-
'@radix-ui/rect@1.1.0':
2081
-
resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
2082
-
2083
-
'@rollup/rollup-android-arm-eabi@4.28.0':
2084
-
resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==}
2085
-
cpu: [arm]
2086
-
os: [android]
2087
-
2088
-
'@rollup/rollup-android-arm64@4.28.0':
2089
-
resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==}
2090
-
cpu: [arm64]
2091
-
os: [android]
2092
-
2093
-
'@rollup/rollup-darwin-arm64@4.28.0':
2094
-
resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==}
2095
-
cpu: [arm64]
2096
-
os: [darwin]
2097
-
2098
-
'@rollup/rollup-darwin-x64@4.28.0':
2099
-
resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==}
2100
-
cpu: [x64]
2101
-
os: [darwin]
2102
-
2103
-
'@rollup/rollup-freebsd-arm64@4.28.0':
2104
-
resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==}
2105
-
cpu: [arm64]
2106
-
os: [freebsd]
2107
-
2108
-
'@rollup/rollup-freebsd-x64@4.28.0':
2109
-
resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==}
2110
-
cpu: [x64]
2111
-
os: [freebsd]
2112
-
2113
-
'@rollup/rollup-linux-arm-gnueabihf@4.28.0':
2114
-
resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==}
2115
-
cpu: [arm]
2116
-
os: [linux]
2117
-
2118
-
'@rollup/rollup-linux-arm-musleabihf@4.28.0':
2119
-
resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==}
2120
-
cpu: [arm]
2121
-
os: [linux]
2122
-
2123
-
'@rollup/rollup-linux-arm64-gnu@4.28.0':
2124
-
resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==}
2125
-
cpu: [arm64]
2126
-
os: [linux]
2127
-
2128
-
'@rollup/rollup-linux-arm64-musl@4.28.0':
2129
-
resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==}
2130
-
cpu: [arm64]
2131
-
os: [linux]
2132
-
2133
-
'@rollup/rollup-linux-powerpc64le-gnu@4.28.0':
2134
-
resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==}
2135
-
cpu: [ppc64]
2136
-
os: [linux]
2137
-
2138
-
'@rollup/rollup-linux-riscv64-gnu@4.28.0':
2139
-
resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==}
2140
-
cpu: [riscv64]
2141
-
os: [linux]
2142
-
2143
-
'@rollup/rollup-linux-s390x-gnu@4.28.0':
2144
-
resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==}
2145
-
cpu: [s390x]
2146
-
os: [linux]
2147
-
2148
-
'@rollup/rollup-linux-x64-gnu@4.28.0':
2149
-
resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==}
2150
-
cpu: [x64]
2151
-
os: [linux]
2152
-
2153
-
'@rollup/rollup-linux-x64-musl@4.28.0':
2154
-
resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==}
2155
-
cpu: [x64]
2156
-
os: [linux]
2157
-
2158
-
'@rollup/rollup-win32-arm64-msvc@4.28.0':
2159
-
resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==}
2160
-
cpu: [arm64]
2161
-
os: [win32]
2162
-
2163
-
'@rollup/rollup-win32-ia32-msvc@4.28.0':
2164
-
resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==}
2165
-
cpu: [ia32]
2166
-
os: [win32]
2167
-
2168
-
'@rollup/rollup-win32-x64-msvc@4.28.0':
2169
-
resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==}
2170
-
cpu: [x64]
2171
-
os: [win32]
2172
-
2173
-
'@sentry/core@8.42.0':
2174
-
resolution: {integrity: sha512-ac6O3pgoIbU6rpwz6LlwW0wp3/GAHuSI0C5IsTgIY6baN8rOBnlAtG6KrHDDkGmUQ2srxkDJu9n1O6Td3cBCqw==}
2175
-
engines: {node: '>=14.18'}
2176
-
2177
-
'@sentry/node@8.42.0':
2178
-
resolution: {integrity: sha512-MsNrmAIwDaxf1jTX1FsgZ+3mUq6G6IuU6FAqyp7TDnvUTsbWUtr0OM6EvVUz0zCImybIh9dcTQ+6KTmUyA7URw==}
2179
-
engines: {node: '>=14.18'}
2180
-
2181
-
'@sentry/opentelemetry@8.42.0':
2182
-
resolution: {integrity: sha512-QPb9kMFgl35TIwIz0u+BFTbPG461CofMiloidJ44GFZ9cB33T5cB0oIN7ut/5tsH/AvqUmucydsV/Nj3HNQx9g==}
2183
-
engines: {node: '>=14.18'}
2184
-
peerDependencies:
2185
-
'@opentelemetry/api': ^1.9.0
2186
-
'@opentelemetry/core': ^1.25.1
2187
-
'@opentelemetry/instrumentation': ^0.54.0
2188
-
'@opentelemetry/sdk-trace-base': ^1.26.0
2189
-
'@opentelemetry/semantic-conventions': ^1.27.0
2190
-
2191
-
'@skyware/jetstream@0.2.1':
2192
-
resolution: {integrity: sha512-qmQkBnMYG3+XBTLUDUKTWMS0QpwCFSZh66fvQRn+xEqUQ2CXB2ELo4El0tgVvdT4+glk4nfzVG45L6Op9VURow==}
2193
-
2194
-
'@swc/core-darwin-arm64@1.9.3':
2195
-
resolution: {integrity: sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==}
2196
-
engines: {node: '>=10'}
2197
-
cpu: [arm64]
2198
-
os: [darwin]
2199
-
2200
-
'@swc/core-darwin-x64@1.9.3':
2201
-
resolution: {integrity: sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==}
2202
-
engines: {node: '>=10'}
2203
-
cpu: [x64]
2204
-
os: [darwin]
2205
-
2206
-
'@swc/core-linux-arm-gnueabihf@1.9.3':
2207
-
resolution: {integrity: sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==}
2208
-
engines: {node: '>=10'}
2209
-
cpu: [arm]
2210
-
os: [linux]
2211
-
2212
-
'@swc/core-linux-arm64-gnu@1.9.3':
2213
-
resolution: {integrity: sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==}
2214
-
engines: {node: '>=10'}
2215
-
cpu: [arm64]
2216
-
os: [linux]
2217
-
2218
-
'@swc/core-linux-arm64-musl@1.9.3':
2219
-
resolution: {integrity: sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==}
2220
-
engines: {node: '>=10'}
2221
-
cpu: [arm64]
2222
-
os: [linux]
2223
-
2224
-
'@swc/core-linux-x64-gnu@1.9.3':
2225
-
resolution: {integrity: sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==}
2226
-
engines: {node: '>=10'}
2227
-
cpu: [x64]
2228
-
os: [linux]
2229
-
2230
-
'@swc/core-linux-x64-musl@1.9.3':
2231
-
resolution: {integrity: sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==}
2232
-
engines: {node: '>=10'}
2233
-
cpu: [x64]
2234
-
os: [linux]
2235
-
2236
-
'@swc/core-win32-arm64-msvc@1.9.3':
2237
-
resolution: {integrity: sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==}
2238
-
engines: {node: '>=10'}
2239
-
cpu: [arm64]
2240
-
os: [win32]
2241
-
2242
-
'@swc/core-win32-ia32-msvc@1.9.3':
2243
-
resolution: {integrity: sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==}
2244
-
engines: {node: '>=10'}
2245
-
cpu: [ia32]
2246
-
os: [win32]
2247
-
2248
-
'@swc/core-win32-x64-msvc@1.9.3':
2249
-
resolution: {integrity: sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==}
2250
-
engines: {node: '>=10'}
2251
-
cpu: [x64]
2252
-
os: [win32]
2253
-
2254
-
'@swc/core@1.9.3':
2255
-
resolution: {integrity: sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==}
2256
-
engines: {node: '>=10'}
2257
-
peerDependencies:
2258
-
'@swc/helpers': '*'
2259
-
peerDependenciesMeta:
2260
-
'@swc/helpers':
2261
-
optional: true
2262
-
2263
-
'@swc/counter@0.1.3':
2264
-
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
2265
-
2266
-
'@swc/types@0.1.17':
2267
-
resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==}
2268
-
2269
-
'@tanstack/eslint-plugin-query@5.62.1':
2270
-
resolution: {integrity: sha512-1886D5U+re1TW0wSH4/kUGG36yIoW5Wkz4twVEzlk3ZWmjF3XkRSWgB+Sc7n+Lyzt8usNV8ZqkZE6DA7IC47fQ==}
2271
-
peerDependencies:
2272
-
eslint: ^8.57.0 || ^9.0.0
2273
-
2274
-
'@tanstack/history@1.90.0':
2275
-
resolution: {integrity: sha512-riNhDGm+fAwxgZRJ0J/36IZis1UDHsDCNIxfEodbw6BgTWJr0ah+G20V4HT91uBXiCqYFvX3somlfTLhS5yHDA==}
2276
-
engines: {node: '>=12'}
2277
-
2278
-
'@tanstack/query-core@5.62.2':
2279
-
resolution: {integrity: sha512-LcwVcC5qpsDpHcqlXUUL5o9SaOBwhNkGeV+B06s0GBoyBr8FqXPuXT29XzYXR36lchhnerp6XO+CWc84/vh7Zg==}
2280
-
2281
-
'@tanstack/query-devtools@5.61.4':
2282
-
resolution: {integrity: sha512-21Tw+u8E3IJJj4A/Bct4H0uBaDTEu7zBrR79FeSyY+mS2gx5/m316oDtJiKkILc819VSTYt+sFzODoJNcpPqZQ==}
2283
-
2284
-
'@tanstack/react-query-devtools@5.62.2':
2285
-
resolution: {integrity: sha512-s4+88OZ6ygD4ziNfUgh9y1XxsGqpscI77c8EaLP7KwEfa5WqnlB9MT/uslFkFq3vwb8JhMjB7Osv2MYrSMry6w==}
2286
-
peerDependencies:
2287
-
'@tanstack/react-query': ^5.62.2
2288
-
react: ^18 || ^19
2289
-
2290
-
'@tanstack/react-query@5.62.2':
2291
-
resolution: {integrity: sha512-fkTpKKfwTJtVPKVR+ag7YqFgG/7TRVVPzduPAUF9zRCiiA8Wu305u+KJl8rCrh98Qce77vzIakvtUyzWLtaPGA==}
2292
-
peerDependencies:
2293
-
react: ^18 || ^19
2294
-
2295
-
'@tanstack/react-router@1.91.2':
2296
-
resolution: {integrity: sha512-L93/fXLJ3PTM0QXzPhUOCmm3zflCoO0KKiQptkPwh7S9GVj9OsNWhah+IC7ou2djt9cQ3LpnCyEWklkynXMhXg==}
2297
-
engines: {node: '>=12'}
2298
-
peerDependencies:
2299
-
'@tanstack/router-generator': ^1.87.7
2300
-
react: '>=18'
2301
-
react-dom: '>=18'
2302
-
peerDependenciesMeta:
2303
-
'@tanstack/router-generator':
2304
-
optional: true
2305
-
2306
-
'@tanstack/react-store@0.6.1':
2307
-
resolution: {integrity: sha512-6gOopOpPp1cAXkEyTEv6tMbAywwFunvIdCKN/SpEiButUayjXU+Q5Sp5Y3hREN3VMR4OA5+RI5SPhhJoqP9e4w==}
2308
-
peerDependencies:
2309
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
2310
-
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
2311
-
2312
-
'@tanstack/router-devtools@1.85.5':
2313
-
resolution: {integrity: sha512-C5A0TP2dFSu3o4Bc1jHzX6ZRC4FC3BmjPJbUx3wJJduPaW72FwTqbGfeT79oyk8mOC69bvLTLydRGfMHQZbIRQ==}
2314
-
engines: {node: '>=12'}
2315
-
peerDependencies:
2316
-
'@tanstack/react-router': ^1.85.5
2317
-
react: '>=18'
2318
-
react-dom: '>=18'
2319
-
2320
-
'@tanstack/router-generator@1.85.3':
2321
-
resolution: {integrity: sha512-ka3hO1EPgV4h2hhECUHi4PGyCCUoo70Masb1/idyL7zzkDX/OPZnRd7JxxyneuRGKJ+GI//YWevqjAemyYeg1A==}
2322
-
engines: {node: '>=12'}
2323
-
2324
-
'@tanstack/router-plugin@1.85.3':
2325
-
resolution: {integrity: sha512-se75j7NZ+I44dcbi6CayvWhfp0r/3pfqgHNYgEQ5BSSPTtXYDaZXxFm5eU6oNxej8IqkzEZS5CMSkq9iHRvaUA==}
2326
-
engines: {node: '>=12'}
2327
-
peerDependencies:
2328
-
'@rsbuild/core': '>=1.0.2'
2329
-
vite: '>=5.0.0'
2330
-
webpack: '>=5.92.0'
2331
-
peerDependenciesMeta:
2332
-
'@rsbuild/core':
2333
-
optional: true
2334
-
vite:
2335
-
optional: true
2336
-
webpack:
2337
-
optional: true
2338
-
2339
-
'@tanstack/store@0.6.0':
2340
-
resolution: {integrity: sha512-+m2OBglsjXcLmmKOX6/9v8BDOCtyxhMmZLsRUDswOOSdIIR9mvv6i0XNKsmTh3AlYU8c1mRcodC8/Vyf+69VlQ==}
2341
-
2342
-
'@tanstack/virtual-file-routes@1.81.9':
2343
-
resolution: {integrity: sha512-jV5mWJrsh3QXHpb/by6udSqwva0qK50uYHpIXvKsLaxnlbjbLfflfPjFyRWXbMtZsnzCjSUqp5pm5/p+Wpaerg==}
2344
-
engines: {node: '>=12'}
2345
-
2346
-
'@trysound/sax@0.2.0':
2347
-
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
2348
-
engines: {node: '>=10.13.0'}
2349
-
2350
-
'@tsconfig/node10@1.0.11':
2351
-
resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
2352
-
2353
-
'@tsconfig/node12@1.0.11':
2354
-
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
2355
-
2356
-
'@tsconfig/node14@1.0.3':
2357
-
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
2358
-
2359
-
'@tsconfig/node16@1.0.4':
2360
-
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
2361
-
2362
-
'@types/babel__core@7.20.5':
2363
-
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
2364
-
2365
-
'@types/babel__generator@7.6.8':
2366
-
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
2367
-
2368
-
'@types/babel__template@7.4.4':
2369
-
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
2370
-
2371
-
'@types/babel__traverse@7.20.6':
2372
-
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
2373
-
2374
-
'@types/connect@3.4.36':
2375
-
resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==}
2376
-
2377
-
'@types/estree@1.0.6':
2378
-
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
2379
-
2380
-
'@types/json-schema@7.0.15':
2381
-
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
2382
-
2383
-
'@types/mysql@2.15.26':
2384
-
resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==}
2385
-
2386
-
'@types/node@22.10.1':
2387
-
resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==}
2388
-
2389
-
'@types/pg-pool@2.0.6':
2390
-
resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==}
2391
-
2392
-
'@types/pg@8.6.1':
2393
-
resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==}
2394
-
2395
-
'@types/react-dom@19.0.1':
2396
-
resolution: {integrity: sha512-hljHij7MpWPKF6u5vojuyfV0YA4YURsQG7KT6SzV0Zs2BXAtgdTxG6A229Ub/xiWV4w/7JL8fi6aAyjshH4meA==}
2397
-
2398
-
'@types/react@19.0.1':
2399
-
resolution: {integrity: sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==}
2400
-
2401
-
'@types/shimmer@1.2.0':
2402
-
resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==}
2403
-
2404
-
'@types/tedious@4.0.14':
2405
-
resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==}
2406
-
2407
-
'@types/ws@8.5.13':
2408
-
resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==}
2409
-
2410
-
'@typescript-eslint/eslint-plugin@8.17.0':
2411
-
resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==}
2412
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2413
-
peerDependencies:
2414
-
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
2415
-
eslint: ^8.57.0 || ^9.0.0
2416
-
typescript: '*'
2417
-
peerDependenciesMeta:
2418
-
typescript:
2419
-
optional: true
2420
-
2421
-
'@typescript-eslint/parser@8.17.0':
2422
-
resolution: {integrity: sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==}
2423
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2424
-
peerDependencies:
2425
-
eslint: ^8.57.0 || ^9.0.0
2426
-
typescript: '*'
2427
-
peerDependenciesMeta:
2428
-
typescript:
2429
-
optional: true
2430
-
2431
-
'@typescript-eslint/scope-manager@8.17.0':
2432
-
resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==}
2433
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2434
-
2435
-
'@typescript-eslint/type-utils@8.17.0':
2436
-
resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==}
2437
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2438
-
peerDependencies:
2439
-
eslint: ^8.57.0 || ^9.0.0
2440
-
typescript: '*'
2441
-
peerDependenciesMeta:
2442
-
typescript:
2443
-
optional: true
2444
-
2445
-
'@typescript-eslint/types@8.17.0':
2446
-
resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==}
2447
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2448
-
2449
-
'@typescript-eslint/typescript-estree@8.17.0':
2450
-
resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==}
2451
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2452
-
peerDependencies:
2453
-
typescript: '*'
2454
-
peerDependenciesMeta:
2455
-
typescript:
2456
-
optional: true
2457
-
2458
-
'@typescript-eslint/utils@8.17.0':
2459
-
resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==}
2460
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2461
-
peerDependencies:
2462
-
eslint: ^8.57.0 || ^9.0.0
2463
-
typescript: '*'
2464
-
peerDependenciesMeta:
2465
-
typescript:
2466
-
optional: true
2467
-
2468
-
'@typescript-eslint/visitor-keys@8.17.0':
2469
-
resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==}
2470
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2471
-
2472
-
'@vitejs/plugin-react-swc@3.7.2':
2473
-
resolution: {integrity: sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==}
2474
-
peerDependencies:
2475
-
vite: ^4 || ^5 || ^6
2476
-
2477
-
abort-controller@3.0.0:
2478
-
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
2479
-
engines: {node: '>=6.5'}
2480
-
2481
-
acorn-import-attributes@1.9.5:
2482
-
resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
2483
-
peerDependencies:
2484
-
acorn: ^8
2485
-
2486
-
acorn-jsx@5.3.2:
2487
-
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
2488
-
peerDependencies:
2489
-
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
2490
-
2491
-
acorn-walk@8.3.4:
2492
-
resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
2493
-
engines: {node: '>=0.4.0'}
2494
-
2495
-
acorn@8.14.0:
2496
-
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
2497
-
engines: {node: '>=0.4.0'}
2498
-
hasBin: true
2499
-
2500
-
ajv@6.12.6:
2501
-
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
2502
-
2503
-
ansi-regex@5.0.1:
2504
-
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
2505
-
engines: {node: '>=8'}
2506
-
2507
-
ansi-regex@6.1.0:
2508
-
resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
2509
-
engines: {node: '>=12'}
2510
-
2511
-
ansi-styles@4.3.0:
2512
-
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
2513
-
engines: {node: '>=8'}
2514
-
2515
-
ansi-styles@6.2.1:
2516
-
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
2517
-
engines: {node: '>=12'}
2518
-
2519
-
any-promise@1.3.0:
2520
-
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
2521
-
2522
-
anymatch@3.1.3:
2523
-
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
2524
-
engines: {node: '>= 8'}
2525
-
2526
-
arg@4.1.3:
2527
-
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
2528
-
2529
-
arg@5.0.2:
2530
-
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
2531
-
2532
-
argparse@2.0.1:
2533
-
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
2534
-
2535
-
aria-hidden@1.2.4:
2536
-
resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
2537
-
engines: {node: '>=10'}
2538
-
2539
-
asynckit@0.4.0:
2540
-
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
2541
-
2542
-
atomic-sleep@1.0.0:
2543
-
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
2544
-
engines: {node: '>=8.0.0'}
2545
-
2546
-
autoprefixer@10.4.20:
2547
-
resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
2548
-
engines: {node: ^10 || ^12 || >=14}
2549
-
hasBin: true
2550
-
peerDependencies:
2551
-
postcss: ^8.1.0
2552
-
2553
-
await-lock@2.2.2:
2554
-
resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==}
2555
-
2556
-
axios@1.7.9:
2557
-
resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==}
2558
-
2559
-
babel-dead-code-elimination@1.0.6:
2560
-
resolution: {integrity: sha512-JxFi9qyRJpN0LjEbbjbN8g0ux71Qppn9R8Qe3k6QzHg2CaKsbUQtbn307LQGiDLGjV6JCtEFqfxzVig9MyDCHQ==}
2561
-
2562
-
balanced-match@1.0.2:
2563
-
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
2564
-
2565
-
base64-js@1.5.1:
2566
-
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
2567
-
2568
-
binary-extensions@2.3.0:
2569
-
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
2570
-
engines: {node: '>=8'}
2571
-
2572
-
boolbase@1.0.0:
2573
-
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
2574
-
2575
-
brace-expansion@1.1.11:
2576
-
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
2577
-
2578
-
brace-expansion@2.0.1:
2579
-
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
2580
-
2581
-
braces@3.0.3:
2582
-
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
2583
-
engines: {node: '>=8'}
2584
-
2585
-
browserslist@4.24.2:
2586
-
resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==}
2587
-
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
2588
-
hasBin: true
2589
-
2590
-
buffer-from@1.1.2:
2591
-
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
2592
-
2593
-
buffer@6.0.3:
2594
-
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
2595
-
2596
-
bufferutil@4.0.8:
2597
-
resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==}
2598
-
engines: {node: '>=6.14.2'}
2599
-
2600
-
bundle-require@5.0.0:
2601
-
resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==}
2602
-
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2603
-
peerDependencies:
2604
-
esbuild: '>=0.18'
2605
-
2606
-
cac@6.7.14:
2607
-
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
2608
-
engines: {node: '>=8'}
2609
-
2610
-
callsites@3.1.0:
2611
-
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
2612
-
engines: {node: '>=6'}
2613
-
2614
-
camelcase-css@2.0.1:
2615
-
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
2616
-
engines: {node: '>= 6'}
2617
-
2618
-
caniuse-api@3.0.0:
2619
-
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
2620
-
2621
-
caniuse-lite@1.0.30001686:
2622
-
resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==}
2623
-
2624
-
cbor-extract@2.2.0:
2625
-
resolution: {integrity: sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==}
2626
-
hasBin: true
2627
-
2628
-
cbor-x@1.6.0:
2629
-
resolution: {integrity: sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==}
2630
-
2631
-
cborg@1.10.2:
2632
-
resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==}
2633
-
hasBin: true
2634
-
2635
-
chalk@4.1.2:
2636
-
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
2637
-
engines: {node: '>=10'}
2638
-
2639
-
chokidar@3.6.0:
2640
-
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
2641
-
engines: {node: '>= 8.10.0'}
2642
-
2643
-
chokidar@4.0.1:
2644
-
resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==}
2645
-
engines: {node: '>= 14.16.0'}
2646
-
2647
-
cjs-module-lexer@1.4.1:
2648
-
resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==}
2649
-
2650
-
class-variance-authority@0.7.1:
2651
-
resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
2652
-
2653
-
clsx@2.1.1:
2654
-
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
2655
-
engines: {node: '>=6'}
2656
-
2657
-
color-convert@2.0.1:
2658
-
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
2659
-
engines: {node: '>=7.0.0'}
2660
-
2661
-
color-name@1.1.4:
2662
-
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
2663
-
2664
-
colord@2.9.3:
2665
-
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
2666
-
2667
-
colorette@2.0.20:
2668
-
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
2669
-
2670
-
combined-stream@1.0.8:
2671
-
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
2672
-
engines: {node: '>= 0.8'}
2673
-
2674
-
commander@4.1.1:
2675
-
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
2676
-
engines: {node: '>= 6'}
2677
-
2678
-
commander@7.2.0:
2679
-
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
2680
-
engines: {node: '>= 10'}
2681
-
2682
-
concat-map@0.0.1:
2683
-
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
2684
-
2685
-
consola@3.2.3:
2686
-
resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
2687
-
engines: {node: ^14.18.0 || >=16.10.0}
2688
-
2689
-
convert-source-map@2.0.0:
2690
-
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
2691
-
2692
-
create-require@1.1.1:
2693
-
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
2694
-
2695
-
cross-spawn@7.0.6:
2696
-
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
2697
-
engines: {node: '>= 8'}
2698
-
2699
-
css-declaration-sorter@7.2.0:
2700
-
resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
2701
-
engines: {node: ^14 || ^16 || >=18}
2702
-
peerDependencies:
2703
-
postcss: ^8.0.9
2704
-
2705
-
css-select@5.1.0:
2706
-
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
2707
-
2708
-
css-tree@2.2.1:
2709
-
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
2710
-
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
2711
-
2712
-
css-tree@2.3.1:
2713
-
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
2714
-
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
2715
-
2716
-
css-what@6.1.0:
2717
-
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
2718
-
engines: {node: '>= 6'}
2719
-
2720
-
cssesc@3.0.0:
2721
-
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
2722
-
engines: {node: '>=4'}
2723
-
hasBin: true
2724
-
2725
-
cssnano-preset-default@7.0.6:
2726
-
resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==}
2727
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
2728
-
peerDependencies:
2729
-
postcss: ^8.4.31
2730
-
2731
-
cssnano-utils@5.0.0:
2732
-
resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==}
2733
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
2734
-
peerDependencies:
2735
-
postcss: ^8.4.31
2736
-
2737
-
cssnano@7.0.6:
2738
-
resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==}
2739
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
2740
-
peerDependencies:
2741
-
postcss: ^8.4.31
2742
-
2743
-
csso@5.0.5:
2744
-
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
2745
-
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
2746
-
2747
-
csstype@3.1.3:
2748
-
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
2749
-
2750
-
data-uri-to-buffer@4.0.1:
2751
-
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
2752
-
engines: {node: '>= 12'}
2753
-
2754
-
dateformat@4.6.3:
2755
-
resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
2756
-
2757
-
debug@4.3.7:
2758
-
resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
2759
-
engines: {node: '>=6.0'}
2760
-
peerDependencies:
2761
-
supports-color: '*'
2762
-
peerDependenciesMeta:
2763
-
supports-color:
2764
-
optional: true
2765
-
2766
-
deep-is@0.1.4:
2767
-
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
2768
-
2769
-
delayed-stream@1.0.0:
2770
-
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
2771
-
engines: {node: '>=0.4.0'}
2772
-
2773
-
detect-libc@2.0.2:
2774
-
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
2775
-
engines: {node: '>=8'}
2776
-
2777
-
detect-node-es@1.1.0:
2778
-
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
2779
-
2780
-
didyoumean@1.2.2:
2781
-
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
2782
-
2783
-
diff@4.0.2:
2784
-
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
2785
-
engines: {node: '>=0.3.1'}
2786
-
2787
-
dlv@1.1.3:
2788
-
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
2789
-
2790
-
dom-serializer@2.0.0:
2791
-
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
2792
-
2793
-
domelementtype@2.3.0:
2794
-
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
2795
-
2796
-
domhandler@5.0.3:
2797
-
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
2798
-
engines: {node: '>= 4'}
2799
-
2800
-
domutils@3.1.0:
2801
-
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
2802
-
2803
-
drizzle-kit@0.29.0:
2804
-
resolution: {integrity: sha512-WjH0eC7/WKl8hucZPl/H5Df6WbUs1KJdM/vfX6bCjn1lOePrbeeroc18dzAVXdZpvgYx0ywJcFOypoC5MfYAYg==}
2805
-
hasBin: true
2806
-
2807
-
drizzle-orm@0.37.0:
2808
-
resolution: {integrity: sha512-AsCNACQ/T2CyZUkrBRUqFT2ibHJ9ZHz3+lzYJFFn3hnj7ylIeItMz5kacRG89uSE74nXYShqehr6u+6ks4JR1A==}
2809
-
peerDependencies:
2810
-
'@aws-sdk/client-rds-data': '>=3'
2811
-
'@cloudflare/workers-types': '>=4'
2812
-
'@electric-sql/pglite': '>=0.2.0'
2813
-
'@libsql/client': '>=0.10.0'
2814
-
'@libsql/client-wasm': '>=0.10.0'
2815
-
'@neondatabase/serverless': '>=0.10.0'
2816
-
'@op-engineering/op-sqlite': '>=2'
2817
-
'@opentelemetry/api': ^1.4.1
2818
-
'@planetscale/database': '>=1'
2819
-
'@prisma/client': '*'
2820
-
'@tidbcloud/serverless': '*'
2821
-
'@types/better-sqlite3': '*'
2822
-
'@types/pg': '*'
2823
-
'@types/react': '>=18'
2824
-
'@types/sql.js': '*'
2825
-
'@vercel/postgres': '>=0.8.0'
2826
-
'@xata.io/client': '*'
2827
-
better-sqlite3: '>=7'
2828
-
bun-types: '*'
2829
-
expo-sqlite: '>=14.0.0'
2830
-
knex: '*'
2831
-
kysely: '*'
2832
-
mysql2: '>=2'
2833
-
pg: '>=8'
2834
-
postgres: '>=3'
2835
-
prisma: '*'
2836
-
react: '>=18'
2837
-
sql.js: '>=1'
2838
-
sqlite3: '>=5'
2839
-
peerDependenciesMeta:
2840
-
'@aws-sdk/client-rds-data':
2841
-
optional: true
2842
-
'@cloudflare/workers-types':
2843
-
optional: true
2844
-
'@electric-sql/pglite':
2845
-
optional: true
2846
-
'@libsql/client':
2847
-
optional: true
2848
-
'@libsql/client-wasm':
2849
-
optional: true
2850
-
'@neondatabase/serverless':
2851
-
optional: true
2852
-
'@op-engineering/op-sqlite':
2853
-
optional: true
2854
-
'@opentelemetry/api':
2855
-
optional: true
2856
-
'@planetscale/database':
2857
-
optional: true
2858
-
'@prisma/client':
2859
-
optional: true
2860
-
'@tidbcloud/serverless':
2861
-
optional: true
2862
-
'@types/better-sqlite3':
2863
-
optional: true
2864
-
'@types/pg':
2865
-
optional: true
2866
-
'@types/react':
2867
-
optional: true
2868
-
'@types/sql.js':
2869
-
optional: true
2870
-
'@vercel/postgres':
2871
-
optional: true
2872
-
'@xata.io/client':
2873
-
optional: true
2874
-
better-sqlite3:
2875
-
optional: true
2876
-
bun-types:
2877
-
optional: true
2878
-
expo-sqlite:
2879
-
optional: true
2880
-
knex:
2881
-
optional: true
2882
-
kysely:
2883
-
optional: true
2884
-
mysql2:
2885
-
optional: true
2886
-
pg:
2887
-
optional: true
2888
-
postgres:
2889
-
optional: true
2890
-
prisma:
2891
-
optional: true
2892
-
react:
2893
-
optional: true
2894
-
sql.js:
2895
-
optional: true
2896
-
sqlite3:
2897
-
optional: true
2898
-
2899
-
eastasianwidth@0.2.0:
2900
-
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
2901
-
2902
-
electron-to-chromium@1.5.68:
2903
-
resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==}
2904
-
2905
-
emoji-regex@8.0.0:
2906
-
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
2907
-
2908
-
emoji-regex@9.2.2:
2909
-
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
2910
-
2911
-
end-of-stream@1.4.4:
2912
-
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
2913
-
2914
-
entities@4.5.0:
2915
-
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
2916
-
engines: {node: '>=0.12'}
2917
-
2918
-
esbuild-register@3.6.0:
2919
-
resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
2920
-
peerDependencies:
2921
-
esbuild: '>=0.12 <1'
2922
-
2923
-
esbuild@0.18.20:
2924
-
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
2925
-
engines: {node: '>=12'}
2926
-
hasBin: true
2927
-
2928
-
esbuild@0.19.12:
2929
-
resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
2930
-
engines: {node: '>=12'}
2931
-
hasBin: true
2932
-
2933
-
esbuild@0.23.1:
2934
-
resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
2935
-
engines: {node: '>=18'}
2936
-
hasBin: true
2937
-
2938
-
esbuild@0.24.0:
2939
-
resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
2940
-
engines: {node: '>=18'}
2941
-
hasBin: true
2942
-
2943
-
escalade@3.2.0:
2944
-
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
2945
-
engines: {node: '>=6'}
2946
-
2947
-
escape-string-regexp@4.0.0:
2948
-
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
2949
-
engines: {node: '>=10'}
2950
-
2951
-
eslint-plugin-react-hooks@5.0.0:
2952
-
resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==}
2953
-
engines: {node: '>=10'}
2954
-
peerDependencies:
2955
-
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
2956
-
2957
-
eslint-plugin-react-refresh@0.4.16:
2958
-
resolution: {integrity: sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==}
2959
-
peerDependencies:
2960
-
eslint: '>=8.40'
2961
-
2962
-
eslint-scope@8.2.0:
2963
-
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
2964
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2965
-
2966
-
eslint-visitor-keys@3.4.3:
2967
-
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
2968
-
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2969
-
2970
-
eslint-visitor-keys@4.2.0:
2971
-
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
2972
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2973
-
2974
-
eslint@9.16.0:
2975
-
resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==}
2976
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2977
-
hasBin: true
2978
-
peerDependencies:
2979
-
jiti: '*'
2980
-
peerDependenciesMeta:
2981
-
jiti:
2982
-
optional: true
2983
-
2984
-
espree@10.3.0:
2985
-
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
2986
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2987
-
2988
-
esquery@1.6.0:
2989
-
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
2990
-
engines: {node: '>=0.10'}
2991
-
2992
-
esrecurse@4.3.0:
2993
-
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
2994
-
engines: {node: '>=4.0'}
2995
-
2996
-
estraverse@5.3.0:
2997
-
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
2998
-
engines: {node: '>=4.0'}
2999
-
3000
-
esutils@2.0.3:
3001
-
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
3002
-
engines: {node: '>=0.10.0'}
3003
-
3004
-
event-target-shim@5.0.1:
3005
-
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
3006
-
engines: {node: '>=6'}
3007
-
3008
-
event-target-shim@6.0.2:
3009
-
resolution: {integrity: sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==}
3010
-
engines: {node: '>=10.13.0'}
3011
-
3012
-
events@3.3.0:
3013
-
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
3014
-
engines: {node: '>=0.8.x'}
3015
-
3016
-
fast-copy@3.0.2:
3017
-
resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}
3018
-
3019
-
fast-deep-equal@3.1.3:
3020
-
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
3021
-
3022
-
fast-glob@3.3.2:
3023
-
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
3024
-
engines: {node: '>=8.6.0'}
3025
-
3026
-
fast-json-stable-stringify@2.1.0:
3027
-
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
3028
-
3029
-
fast-levenshtein@2.0.6:
3030
-
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
3031
-
3032
-
fast-redact@3.5.0:
3033
-
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
3034
-
engines: {node: '>=6'}
3035
-
3036
-
fast-safe-stringify@2.1.1:
3037
-
resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
3038
-
3039
-
fastq@1.17.1:
3040
-
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
3041
-
3042
-
fdir@6.4.2:
3043
-
resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
3044
-
peerDependencies:
3045
-
picomatch: ^3 || ^4
3046
-
peerDependenciesMeta:
3047
-
picomatch:
3048
-
optional: true
3049
-
3050
-
fetch-blob@3.2.0:
3051
-
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
3052
-
engines: {node: ^12.20 || >= 14.13}
3053
-
3054
-
file-entry-cache@8.0.0:
3055
-
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
3056
-
engines: {node: '>=16.0.0'}
3057
-
3058
-
fill-range@7.1.1:
3059
-
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
3060
-
engines: {node: '>=8'}
3061
-
3062
-
find-up@5.0.0:
3063
-
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
3064
-
engines: {node: '>=10'}
3065
-
3066
-
flat-cache@4.0.1:
3067
-
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
3068
-
engines: {node: '>=16'}
3069
-
3070
-
flatted@3.3.2:
3071
-
resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
3072
-
3073
-
follow-redirects@1.15.9:
3074
-
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
3075
-
engines: {node: '>=4.0'}
3076
-
peerDependencies:
3077
-
debug: '*'
3078
-
peerDependenciesMeta:
3079
-
debug:
3080
-
optional: true
3081
-
3082
-
foreground-child@3.3.0:
3083
-
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
3084
-
engines: {node: '>=14'}
3085
-
3086
-
form-data@4.0.1:
3087
-
resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
3088
-
engines: {node: '>= 6'}
3089
-
3090
-
formdata-polyfill@4.0.10:
3091
-
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
3092
-
engines: {node: '>=12.20.0'}
3093
-
3094
-
fraction.js@4.3.7:
3095
-
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
3096
-
3097
-
fsevents@2.3.3:
3098
-
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
3099
-
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
3100
-
os: [darwin]
3101
-
3102
-
function-bind@1.1.2:
3103
-
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
3104
-
3105
-
gensync@1.0.0-beta.2:
3106
-
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
3107
-
engines: {node: '>=6.9.0'}
3108
-
3109
-
get-nonce@1.0.1:
3110
-
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
3111
-
engines: {node: '>=6'}
3112
-
3113
-
get-tsconfig@4.8.1:
3114
-
resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
3115
-
3116
-
glob-parent@5.1.2:
3117
-
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
3118
-
engines: {node: '>= 6'}
3119
-
3120
-
glob-parent@6.0.2:
3121
-
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
3122
-
engines: {node: '>=10.13.0'}
3123
-
3124
-
glob@10.4.5:
3125
-
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
3126
-
hasBin: true
3127
-
3128
-
glob@11.0.0:
3129
-
resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
3130
-
engines: {node: 20 || >=22}
3131
-
hasBin: true
3132
-
3133
-
globals@11.12.0:
3134
-
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
3135
-
engines: {node: '>=4'}
3136
-
3137
-
globals@14.0.0:
3138
-
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
3139
-
engines: {node: '>=18'}
3140
-
3141
-
globals@15.13.0:
3142
-
resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==}
3143
-
engines: {node: '>=18'}
3144
-
3145
-
goober@2.1.16:
3146
-
resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==}
3147
-
peerDependencies:
3148
-
csstype: ^3.0.10
3149
-
3150
-
graphemer@1.4.0:
3151
-
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
3152
-
3153
-
has-flag@4.0.0:
3154
-
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
3155
-
engines: {node: '>=8'}
3156
-
3157
-
hasown@2.0.2:
3158
-
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
3159
-
engines: {node: '>= 0.4'}
3160
-
3161
-
help-me@5.0.0:
3162
-
resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==}
3163
-
3164
-
hono-sessions@0.7.0:
3165
-
resolution: {integrity: sha512-bclJUXaBq66R7jEjccqs/tc9WPJiS/wbWV5rrSMuYkTTCRF24wUi2nHjIummb7yzSpkT3GqLRifZkvNbzSMTzg==}
3166
-
3167
-
hono@4.6.12:
3168
-
resolution: {integrity: sha512-eHtf4kSDNw6VVrdbd5IQi16r22m3s7mWPLd7xOMhg1a/Yyb1A0qpUFq8xYMX4FMuDe1nTKeMX5rTx7Nmw+a+Ag==}
3169
-
engines: {node: '>=16.9.0'}
3170
-
3171
-
ieee754@1.2.1:
3172
-
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
3173
-
3174
-
ignore@5.3.2:
3175
-
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
3176
-
engines: {node: '>= 4'}
3177
-
3178
-
import-fresh@3.3.0:
3179
-
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
3180
-
engines: {node: '>=6'}
3181
-
3182
-
import-in-the-middle@1.11.3:
3183
-
resolution: {integrity: sha512-tNpKEb4AjZrCyrxi+Eyu43h5ig0O8ZRFSXPHh/00/o+4P4pKzVEW/m5lsVtsAT7fCIgmQOAPjdqecGDsBXRxsw==}
3184
-
3185
-
imurmurhash@0.1.4:
3186
-
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
3187
-
engines: {node: '>=0.8.19'}
3188
-
3189
-
ipaddr.js@2.2.0:
3190
-
resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
3191
-
engines: {node: '>= 10'}
3192
-
3193
-
iron-webcrypto@0.10.1:
3194
-
resolution: {integrity: sha512-QGOS8MRMnj/UiOa+aMIgfyHcvkhqNUsUxb1XzskENvbo+rEfp6TOwqd1KPuDzXC4OnGHcMSVxDGRoilqB8ViqA==}
3195
-
3196
-
is-binary-path@2.1.0:
3197
-
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
3198
-
engines: {node: '>=8'}
3199
-
3200
-
is-core-module@2.15.1:
3201
-
resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
3202
-
engines: {node: '>= 0.4'}
3203
-
3204
-
is-extglob@2.1.1:
3205
-
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
3206
-
engines: {node: '>=0.10.0'}
3207
-
3208
-
is-fullwidth-code-point@3.0.0:
3209
-
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
3210
-
engines: {node: '>=8'}
3211
-
3212
-
is-glob@4.0.3:
3213
-
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
3214
-
engines: {node: '>=0.10.0'}
3215
-
3216
-
is-number@7.0.0:
3217
-
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
3218
-
engines: {node: '>=0.12.0'}
3219
-
3220
-
isexe@2.0.0:
3221
-
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
3222
-
3223
-
iso-datestring-validator@2.2.2:
3224
-
resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==}
3225
-
3226
-
jackspeak@3.4.3:
3227
-
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
3228
-
3229
-
jackspeak@4.0.2:
3230
-
resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
3231
-
engines: {node: 20 || >=22}
3232
-
3233
-
jiti@1.21.6:
3234
-
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
3235
-
hasBin: true
3236
-
3237
-
jiti@2.4.1:
3238
-
resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==}
3239
-
hasBin: true
3240
-
3241
-
jose@5.9.6:
3242
-
resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==}
3243
-
3244
-
joycon@3.1.1:
3245
-
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
3246
-
engines: {node: '>=10'}
3247
-
3248
-
js-base64@3.7.7:
3249
-
resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
3250
-
3251
-
js-tokens@4.0.0:
3252
-
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
3253
-
3254
-
js-yaml@4.1.0:
3255
-
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
3256
-
hasBin: true
3257
-
3258
-
jsesc@3.0.2:
3259
-
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
3260
-
engines: {node: '>=6'}
3261
-
hasBin: true
3262
-
3263
-
json-buffer@3.0.1:
3264
-
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
3265
-
3266
-
json-schema-traverse@0.4.1:
3267
-
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
3268
-
3269
-
json-stable-stringify-without-jsonify@1.0.1:
3270
-
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
3271
-
3272
-
json5@2.2.3:
3273
-
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
3274
-
engines: {node: '>=6'}
3275
-
hasBin: true
3276
-
3277
-
keyv@4.5.4:
3278
-
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
3279
-
3280
-
levn@0.4.1:
3281
-
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
3282
-
engines: {node: '>= 0.8.0'}
3283
-
3284
-
libsql@0.4.7:
3285
-
resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==}
3286
-
cpu: [x64, arm64, wasm32]
3287
-
os: [darwin, linux, win32]
3288
-
3289
-
lilconfig@3.1.3:
3290
-
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
3291
-
engines: {node: '>=14'}
3292
-
3293
-
lines-and-columns@1.2.4:
3294
-
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
3295
-
3296
-
load-tsconfig@0.2.5:
3297
-
resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
3298
-
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3299
-
3300
-
locate-path@6.0.0:
3301
-
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
3302
-
engines: {node: '>=10'}
3303
-
3304
-
lodash.memoize@4.1.2:
3305
-
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
3306
-
3307
-
lodash.merge@4.6.2:
3308
-
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
3309
-
3310
-
lodash.sortby@4.7.0:
3311
-
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
3312
-
3313
-
lodash.uniq@4.5.0:
3314
-
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
3315
-
3316
-
lru-cache@10.4.3:
3317
-
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
3318
-
3319
-
lru-cache@11.0.2:
3320
-
resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
3321
-
engines: {node: 20 || >=22}
3322
-
3323
-
lru-cache@5.1.1:
3324
-
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
3325
-
3326
-
lucide-react@0.464.0:
3327
-
resolution: {integrity: sha512-eCx1qClbnw5qRqB2Z1AFFp71wdJXEwhPp5ii8LviyvHb7o/7eMXFiTyDHh7JpjM9BO9pC6ZUp/c7mCwwxbPIcg==}
3328
-
peerDependencies:
3329
-
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
3330
-
3331
-
make-error@1.3.6:
3332
-
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
3333
-
3334
-
mdn-data@2.0.28:
3335
-
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
3336
-
3337
-
mdn-data@2.0.30:
3338
-
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
3339
-
3340
-
merge2@1.4.1:
3341
-
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
3342
-
engines: {node: '>= 8'}
3343
-
3344
-
micromatch@4.0.8:
3345
-
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
3346
-
engines: {node: '>=8.6'}
3347
-
3348
-
mime-db@1.52.0:
3349
-
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
3350
-
engines: {node: '>= 0.6'}
3351
-
3352
-
mime-types@2.1.35:
3353
-
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
3354
-
engines: {node: '>= 0.6'}
3355
-
3356
-
minimatch@10.0.1:
3357
-
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
3358
-
engines: {node: 20 || >=22}
3359
-
3360
-
minimatch@3.1.2:
3361
-
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
3362
-
3363
-
minimatch@9.0.5:
3364
-
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
3365
-
engines: {node: '>=16 || 14 >=14.17'}
3366
-
3367
-
minimist@1.2.8:
3368
-
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
3369
-
3370
-
minipass@7.1.2:
3371
-
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
3372
-
engines: {node: '>=16 || 14 >=14.17'}
3373
-
3374
-
module-details-from-path@1.0.3:
3375
-
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
3376
-
3377
-
ms@2.1.3:
3378
-
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
3379
-
3380
-
multiformats@13.3.1:
3381
-
resolution: {integrity: sha512-QxowxTNwJ3r5RMctoGA5p13w5RbRT2QDkoM+yFlqfLiioBp78nhDjnRLvmSBI9+KAqN4VdgOVWM9c0CHd86m3g==}
3382
-
3383
-
multiformats@9.9.0:
3384
-
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
3385
-
3386
-
mz@2.7.0:
3387
-
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
3388
-
3389
-
nanoid@3.3.8:
3390
-
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
3391
-
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
3392
-
hasBin: true
3393
-
3394
-
nanoid@5.0.9:
3395
-
resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==}
3396
-
engines: {node: ^18 || >=20}
3397
-
hasBin: true
3398
-
3399
-
natural-compare@1.4.0:
3400
-
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
3401
-
3402
-
node-domexception@1.0.0:
3403
-
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
3404
-
engines: {node: '>=10.5.0'}
3405
-
3406
-
node-fetch@3.3.2:
3407
-
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
3408
-
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3409
-
3410
-
node-gyp-build-optional-packages@5.1.1:
3411
-
resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==}
3412
-
hasBin: true
3413
-
3414
-
node-gyp-build@4.8.4:
3415
-
resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
3416
-
hasBin: true
3417
-
3418
-
node-releases@2.0.18:
3419
-
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
3420
-
3421
-
normalize-path@3.0.0:
3422
-
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
3423
-
engines: {node: '>=0.10.0'}
3424
-
3425
-
normalize-range@0.1.2:
3426
-
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
3427
-
engines: {node: '>=0.10.0'}
3428
-
3429
-
nth-check@2.1.1:
3430
-
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
3431
-
3432
-
object-assign@4.1.1:
3433
-
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
3434
-
engines: {node: '>=0.10.0'}
3435
-
3436
-
object-hash@3.0.0:
3437
-
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
3438
-
engines: {node: '>= 6'}
3439
-
3440
-
on-exit-leak-free@2.1.2:
3441
-
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
3442
-
engines: {node: '>=14.0.0'}
3443
-
3444
-
once@1.4.0:
3445
-
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
3446
-
3447
-
optionator@0.9.4:
3448
-
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
3449
-
engines: {node: '>= 0.8.0'}
3450
-
3451
-
p-limit@3.1.0:
3452
-
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
3453
-
engines: {node: '>=10'}
3454
-
3455
-
p-locate@5.0.0:
3456
-
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
3457
-
engines: {node: '>=10'}
3458
-
3459
-
package-json-from-dist@1.0.1:
3460
-
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
3461
-
3462
-
parent-module@1.0.1:
3463
-
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
3464
-
engines: {node: '>=6'}
3465
-
3466
-
partysocket@1.0.2:
3467
-
resolution: {integrity: sha512-rAFOUKImaq+VBk2B+2RTBsWEvlnarEP53nchoUHzpVs8V6fG2/estihOTslTQUWHVuHEKDL5k8htG8K3TngyFA==}
3468
-
3469
-
path-exists@4.0.0:
3470
-
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
3471
-
engines: {node: '>=8'}
3472
-
3473
-
path-key@3.1.1:
3474
-
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
3475
-
engines: {node: '>=8'}
3476
-
3477
-
path-parse@1.0.7:
3478
-
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
3479
-
3480
-
path-scurry@1.11.1:
3481
-
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
3482
-
engines: {node: '>=16 || 14 >=14.18'}
3483
-
3484
-
path-scurry@2.0.0:
3485
-
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
3486
-
engines: {node: 20 || >=22}
3487
-
3488
-
pg-int8@1.0.1:
3489
-
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
3490
-
engines: {node: '>=4.0.0'}
3491
-
3492
-
pg-protocol@1.7.0:
3493
-
resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==}
3494
-
3495
-
pg-types@2.2.0:
3496
-
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
3497
-
engines: {node: '>=4'}
3498
-
3499
-
picocolors@1.1.1:
3500
-
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
3501
-
3502
-
picomatch@2.3.1:
3503
-
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
3504
-
engines: {node: '>=8.6'}
3505
-
3506
-
picomatch@4.0.2:
3507
-
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
3508
-
engines: {node: '>=12'}
3509
-
3510
-
pify@2.3.0:
3511
-
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
3512
-
engines: {node: '>=0.10.0'}
3513
-
3514
-
pino-abstract-transport@1.2.0:
3515
-
resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
3516
-
3517
-
pino-abstract-transport@2.0.0:
3518
-
resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==}
3519
-
3520
-
pino-pretty@13.0.0:
3521
-
resolution: {integrity: sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==}
3522
-
hasBin: true
3523
-
3524
-
pino-std-serializers@6.2.2:
3525
-
resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
3526
-
3527
-
pino-std-serializers@7.0.0:
3528
-
resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
3529
-
3530
-
pino@8.21.0:
3531
-
resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==}
3532
-
hasBin: true
3533
-
3534
-
pino@9.5.0:
3535
-
resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==}
3536
-
hasBin: true
3537
-
3538
-
pirates@4.0.6:
3539
-
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
3540
-
engines: {node: '>= 6'}
3541
-
3542
-
postcss-calc@10.0.2:
3543
-
resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==}
3544
-
engines: {node: ^18.12 || ^20.9 || >=22.0}
3545
-
peerDependencies:
3546
-
postcss: ^8.4.38
3547
-
3548
-
postcss-colormin@7.0.2:
3549
-
resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==}
3550
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3551
-
peerDependencies:
3552
-
postcss: ^8.4.31
3553
-
3554
-
postcss-convert-values@7.0.4:
3555
-
resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==}
3556
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3557
-
peerDependencies:
3558
-
postcss: ^8.4.31
3559
-
3560
-
postcss-discard-comments@7.0.3:
3561
-
resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==}
3562
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3563
-
peerDependencies:
3564
-
postcss: ^8.4.31
3565
-
3566
-
postcss-discard-duplicates@7.0.1:
3567
-
resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==}
3568
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3569
-
peerDependencies:
3570
-
postcss: ^8.4.31
3571
-
3572
-
postcss-discard-empty@7.0.0:
3573
-
resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==}
3574
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3575
-
peerDependencies:
3576
-
postcss: ^8.4.31
3577
-
3578
-
postcss-discard-overridden@7.0.0:
3579
-
resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==}
3580
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3581
-
peerDependencies:
3582
-
postcss: ^8.4.31
3583
-
3584
-
postcss-import@15.1.0:
3585
-
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
3586
-
engines: {node: '>=14.0.0'}
3587
-
peerDependencies:
3588
-
postcss: ^8.0.0
3589
-
3590
-
postcss-js@4.0.1:
3591
-
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
3592
-
engines: {node: ^12 || ^14 || >= 16}
3593
-
peerDependencies:
3594
-
postcss: ^8.4.21
3595
-
3596
-
postcss-load-config@4.0.2:
3597
-
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
3598
-
engines: {node: '>= 14'}
3599
-
peerDependencies:
3600
-
postcss: '>=8.0.9'
3601
-
ts-node: '>=9.0.0'
3602
-
peerDependenciesMeta:
3603
-
postcss:
3604
-
optional: true
3605
-
ts-node:
3606
-
optional: true
3607
-
3608
-
postcss-load-config@6.0.1:
3609
-
resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
3610
-
engines: {node: '>= 18'}
3611
-
peerDependencies:
3612
-
jiti: '>=1.21.0'
3613
-
postcss: '>=8.0.9'
3614
-
tsx: ^4.8.1
3615
-
yaml: ^2.4.2
3616
-
peerDependenciesMeta:
3617
-
jiti:
3618
-
optional: true
3619
-
postcss:
3620
-
optional: true
3621
-
tsx:
3622
-
optional: true
3623
-
yaml:
3624
-
optional: true
3625
-
3626
-
postcss-merge-longhand@7.0.4:
3627
-
resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==}
3628
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3629
-
peerDependencies:
3630
-
postcss: ^8.4.31
3631
-
3632
-
postcss-merge-rules@7.0.4:
3633
-
resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==}
3634
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3635
-
peerDependencies:
3636
-
postcss: ^8.4.31
3637
-
3638
-
postcss-minify-font-values@7.0.0:
3639
-
resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==}
3640
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3641
-
peerDependencies:
3642
-
postcss: ^8.4.31
3643
-
3644
-
postcss-minify-gradients@7.0.0:
3645
-
resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==}
3646
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3647
-
peerDependencies:
3648
-
postcss: ^8.4.31
3649
-
3650
-
postcss-minify-params@7.0.2:
3651
-
resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==}
3652
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3653
-
peerDependencies:
3654
-
postcss: ^8.4.31
3655
-
3656
-
postcss-minify-selectors@7.0.4:
3657
-
resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==}
3658
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3659
-
peerDependencies:
3660
-
postcss: ^8.4.31
3661
-
3662
-
postcss-nested@6.2.0:
3663
-
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
3664
-
engines: {node: '>=12.0'}
3665
-
peerDependencies:
3666
-
postcss: ^8.2.14
3667
-
3668
-
postcss-normalize-charset@7.0.0:
3669
-
resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==}
3670
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3671
-
peerDependencies:
3672
-
postcss: ^8.4.31
3673
-
3674
-
postcss-normalize-display-values@7.0.0:
3675
-
resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==}
3676
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3677
-
peerDependencies:
3678
-
postcss: ^8.4.31
3679
-
3680
-
postcss-normalize-positions@7.0.0:
3681
-
resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==}
3682
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3683
-
peerDependencies:
3684
-
postcss: ^8.4.31
3685
-
3686
-
postcss-normalize-repeat-style@7.0.0:
3687
-
resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==}
3688
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3689
-
peerDependencies:
3690
-
postcss: ^8.4.31
3691
-
3692
-
postcss-normalize-string@7.0.0:
3693
-
resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==}
3694
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3695
-
peerDependencies:
3696
-
postcss: ^8.4.31
3697
-
3698
-
postcss-normalize-timing-functions@7.0.0:
3699
-
resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==}
3700
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3701
-
peerDependencies:
3702
-
postcss: ^8.4.31
3703
-
3704
-
postcss-normalize-unicode@7.0.2:
3705
-
resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==}
3706
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3707
-
peerDependencies:
3708
-
postcss: ^8.4.31
3709
-
3710
-
postcss-normalize-url@7.0.0:
3711
-
resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==}
3712
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3713
-
peerDependencies:
3714
-
postcss: ^8.4.31
3715
-
3716
-
postcss-normalize-whitespace@7.0.0:
3717
-
resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==}
3718
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3719
-
peerDependencies:
3720
-
postcss: ^8.4.31
3721
-
3722
-
postcss-ordered-values@7.0.1:
3723
-
resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==}
3724
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3725
-
peerDependencies:
3726
-
postcss: ^8.4.31
3727
-
3728
-
postcss-reduce-initial@7.0.2:
3729
-
resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==}
3730
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3731
-
peerDependencies:
3732
-
postcss: ^8.4.31
3733
-
3734
-
postcss-reduce-transforms@7.0.0:
3735
-
resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==}
3736
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3737
-
peerDependencies:
3738
-
postcss: ^8.4.31
3739
-
3740
-
postcss-selector-parser@6.1.2:
3741
-
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
3742
-
engines: {node: '>=4'}
3743
-
3744
-
postcss-svgo@7.0.1:
3745
-
resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==}
3746
-
engines: {node: ^18.12.0 || ^20.9.0 || >= 18}
3747
-
peerDependencies:
3748
-
postcss: ^8.4.31
3749
-
3750
-
postcss-unique-selectors@7.0.3:
3751
-
resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==}
3752
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
3753
-
peerDependencies:
3754
-
postcss: ^8.4.31
3755
-
3756
-
postcss-value-parser@4.2.0:
3757
-
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
3758
-
3759
-
postcss@8.4.49:
3760
-
resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
3761
-
engines: {node: ^10 || ^12 || >=14}
3762
-
3763
-
postgres-array@2.0.0:
3764
-
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
3765
-
engines: {node: '>=4'}
3766
-
3767
-
postgres-bytea@1.0.0:
3768
-
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
3769
-
engines: {node: '>=0.10.0'}
3770
-
3771
-
postgres-date@1.0.7:
3772
-
resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
3773
-
engines: {node: '>=0.10.0'}
3774
-
3775
-
postgres-interval@1.2.0:
3776
-
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
3777
-
engines: {node: '>=0.10.0'}
3778
-
3779
-
prelude-ls@1.2.1:
3780
-
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
3781
-
engines: {node: '>= 0.8.0'}
3782
-
3783
-
prettier@3.4.1:
3784
-
resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==}
3785
-
engines: {node: '>=14'}
3786
-
hasBin: true
3787
-
3788
-
process-warning@3.0.0:
3789
-
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
3790
-
3791
-
process-warning@4.0.0:
3792
-
resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==}
3793
-
3794
-
process@0.11.10:
3795
-
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
3796
-
engines: {node: '>= 0.6.0'}
3797
-
3798
-
promise-limit@2.7.0:
3799
-
resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}
3800
-
3801
-
proxy-from-env@1.1.0:
3802
-
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
3803
-
3804
-
psl@1.15.0:
3805
-
resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==}
3806
-
3807
-
pump@3.0.2:
3808
-
resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
3809
-
3810
-
punycode@2.3.1:
3811
-
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
3812
-
engines: {node: '>=6'}
3813
-
3814
-
queue-microtask@1.2.3:
3815
-
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
3816
-
3817
-
quick-format-unescaped@4.0.4:
3818
-
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
3819
-
3820
-
react-dom@19.0.0:
3821
-
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
3822
-
peerDependencies:
3823
-
react: ^19.0.0
3824
-
3825
-
react-hook-form@7.54.1:
3826
-
resolution: {integrity: sha512-PUNzFwQeQ5oHiiTUO7GO/EJXGEtuun2Y1A59rLnZBBj+vNEOWt/3ERTiG1/zt7dVeJEM+4vDX/7XQ/qanuvPMg==}
3827
-
engines: {node: '>=18.0.0'}
3828
-
peerDependencies:
3829
-
react: ^16.8.0 || ^17 || ^18 || ^19
3830
-
3831
-
react-remove-scroll-bar@2.3.8:
3832
-
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
3833
-
engines: {node: '>=10'}
3834
-
peerDependencies:
3835
-
'@types/react': '*'
3836
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
3837
-
peerDependenciesMeta:
3838
-
'@types/react':
3839
-
optional: true
3840
-
3841
-
react-remove-scroll@2.6.2:
3842
-
resolution: {integrity: sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==}
3843
-
engines: {node: '>=10'}
3844
-
peerDependencies:
3845
-
'@types/react': '*'
3846
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
3847
-
peerDependenciesMeta:
3848
-
'@types/react':
3849
-
optional: true
3850
-
3851
-
react-style-singleton@2.2.3:
3852
-
resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
3853
-
engines: {node: '>=10'}
3854
-
peerDependencies:
3855
-
'@types/react': '*'
3856
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
3857
-
peerDependenciesMeta:
3858
-
'@types/react':
3859
-
optional: true
3860
-
3861
-
react@19.0.0:
3862
-
resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
3863
-
engines: {node: '>=0.10.0'}
3864
-
3865
-
read-cache@1.0.0:
3866
-
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
3867
-
3868
-
readable-stream@4.5.2:
3869
-
resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
3870
-
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
3871
-
3872
-
readdirp@3.6.0:
3873
-
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
3874
-
engines: {node: '>=8.10.0'}
3875
-
3876
-
readdirp@4.0.2:
3877
-
resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==}
3878
-
engines: {node: '>= 14.16.0'}
3879
-
3880
-
real-require@0.2.0:
3881
-
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
3882
-
engines: {node: '>= 12.13.0'}
3883
-
3884
-
require-in-the-middle@7.4.0:
3885
-
resolution: {integrity: sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==}
3886
-
engines: {node: '>=8.6.0'}
3887
-
3888
-
resolve-from@4.0.0:
3889
-
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
3890
-
engines: {node: '>=4'}
3891
-
3892
-
resolve-from@5.0.0:
3893
-
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
3894
-
engines: {node: '>=8'}
3895
-
3896
-
resolve-pkg-maps@1.0.0:
3897
-
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
3898
-
3899
-
resolve@1.22.8:
3900
-
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
3901
-
hasBin: true
3902
-
3903
-
reusify@1.0.4:
3904
-
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
3905
-
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
3906
-
3907
-
rimraf@6.0.1:
3908
-
resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
3909
-
engines: {node: 20 || >=22}
3910
-
hasBin: true
3911
-
3912
-
rollup@4.28.0:
3913
-
resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==}
3914
-
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
3915
-
hasBin: true
3916
-
3917
-
run-parallel@1.2.0:
3918
-
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3919
-
3920
-
safe-buffer@5.2.1:
3921
-
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
3922
-
3923
-
safe-stable-stringify@2.5.0:
3924
-
resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
3925
-
engines: {node: '>=10'}
3926
-
3927
-
scheduler@0.25.0:
3928
-
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
3929
-
3930
-
secure-json-parse@2.7.0:
3931
-
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
3932
-
3933
-
semver@6.3.1:
3934
-
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
3935
-
hasBin: true
3936
-
3937
-
semver@7.6.3:
3938
-
resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
3939
-
engines: {node: '>=10'}
3940
-
hasBin: true
3941
-
3942
-
shebang-command@2.0.0:
3943
-
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
3944
-
engines: {node: '>=8'}
3945
-
3946
-
shebang-regex@3.0.0:
3947
-
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
3948
-
engines: {node: '>=8'}
3949
-
3950
-
shimmer@1.2.1:
3951
-
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
3952
-
3953
-
signal-exit@4.1.0:
3954
-
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
3955
-
engines: {node: '>=14'}
3956
-
3957
-
sonic-boom@3.8.1:
3958
-
resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==}
3959
-
3960
-
sonic-boom@4.2.0:
3961
-
resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==}
3962
-
3963
-
source-map-js@1.2.1:
3964
-
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
3965
-
engines: {node: '>=0.10.0'}
3966
-
3967
-
source-map-support@0.5.21:
3968
-
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
3969
-
3970
-
source-map@0.6.1:
3971
-
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
3972
-
engines: {node: '>=0.10.0'}
3973
-
3974
-
source-map@0.8.0-beta.0:
3975
-
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
3976
-
engines: {node: '>= 8'}
3977
-
3978
-
split2@4.2.0:
3979
-
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
3980
-
engines: {node: '>= 10.x'}
3981
-
3982
-
string-width@4.2.3:
3983
-
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3984
-
engines: {node: '>=8'}
3985
-
3986
-
string-width@5.1.2:
3987
-
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
3988
-
engines: {node: '>=12'}
3989
-
3990
-
string_decoder@1.3.0:
3991
-
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
3992
-
3993
-
strip-ansi@6.0.1:
3994
-
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
3995
-
engines: {node: '>=8'}
3996
-
3997
-
strip-ansi@7.1.0:
3998
-
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
3999
-
engines: {node: '>=12'}
4000
-
4001
-
strip-json-comments@3.1.1:
4002
-
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
4003
-
engines: {node: '>=8'}
4004
-
4005
-
stylehacks@7.0.4:
4006
-
resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==}
4007
-
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
4008
-
peerDependencies:
4009
-
postcss: ^8.4.31
4010
-
4011
-
sucrase@3.35.0:
4012
-
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
4013
-
engines: {node: '>=16 || 14 >=14.17'}
4014
-
hasBin: true
4015
-
4016
-
supports-color@7.2.0:
4017
-
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
4018
-
engines: {node: '>=8'}
4019
-
4020
-
supports-preserve-symlinks-flag@1.0.0:
4021
-
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
4022
-
engines: {node: '>= 0.4'}
4023
-
4024
-
svgo@3.3.2:
4025
-
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
4026
-
engines: {node: '>=14.0.0'}
4027
-
hasBin: true
4028
-
4029
-
tailwind-merge@2.5.5:
4030
-
resolution: {integrity: sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==}
4031
-
4032
-
tailwindcss-animate@1.0.7:
4033
-
resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
4034
-
peerDependencies:
4035
-
tailwindcss: '>=3.0.0 || insiders'
4036
-
4037
-
tailwindcss@3.4.16:
4038
-
resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==}
4039
-
engines: {node: '>=14.0.0'}
4040
-
hasBin: true
4041
-
4042
-
thenify-all@1.6.0:
4043
-
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
4044
-
engines: {node: '>=0.8'}
4045
-
4046
-
thenify@3.3.1:
4047
-
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
4048
-
4049
-
thread-stream@2.7.0:
4050
-
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
4051
-
4052
-
thread-stream@3.1.0:
4053
-
resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
4054
-
4055
-
tiny-invariant@1.3.3:
4056
-
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
4057
-
4058
-
tiny-warning@1.0.3:
4059
-
resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
4060
-
4061
-
tinyexec@0.3.1:
4062
-
resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==}
4063
-
4064
-
tinyglobby@0.2.10:
4065
-
resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
4066
-
engines: {node: '>=12.0.0'}
4067
-
4068
-
tlds@1.255.0:
4069
-
resolution: {integrity: sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==}
4070
-
hasBin: true
4071
-
4072
-
to-regex-range@5.0.1:
4073
-
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
4074
-
engines: {node: '>=8.0'}
4075
-
4076
-
tr46@1.0.1:
4077
-
resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
4078
-
4079
-
tree-kill@1.2.2:
4080
-
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
4081
-
hasBin: true
4082
-
4083
-
ts-api-utils@1.4.3:
4084
-
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
4085
-
engines: {node: '>=16'}
4086
-
peerDependencies:
4087
-
typescript: '>=4.2.0'
4088
-
4089
-
ts-interface-checker@0.1.13:
4090
-
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
4091
-
4092
-
ts-node@10.9.2:
4093
-
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
4094
-
hasBin: true
4095
-
peerDependencies:
4096
-
'@swc/core': '>=1.2.50'
4097
-
'@swc/wasm': '>=1.2.50'
4098
-
'@types/node': '*'
4099
-
typescript: '>=2.7'
4100
-
peerDependenciesMeta:
4101
-
'@swc/core':
4102
-
optional: true
4103
-
'@swc/wasm':
4104
-
optional: true
4105
-
4106
-
tslib@2.8.1:
4107
-
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
4108
-
4109
-
tsup@8.3.5:
4110
-
resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==}
4111
-
engines: {node: '>=18'}
4112
-
hasBin: true
4113
-
peerDependencies:
4114
-
'@microsoft/api-extractor': ^7.36.0
4115
-
'@swc/core': ^1
4116
-
postcss: ^8.4.12
4117
-
typescript: '>=4.5.0'
4118
-
peerDependenciesMeta:
4119
-
'@microsoft/api-extractor':
4120
-
optional: true
4121
-
'@swc/core':
4122
-
optional: true
4123
-
postcss:
4124
-
optional: true
4125
-
typescript:
4126
-
optional: true
4127
-
4128
-
tsx@4.19.2:
4129
-
resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==}
4130
-
engines: {node: '>=18.0.0'}
4131
-
hasBin: true
4132
-
4133
-
turbo-darwin-64@2.3.3:
4134
-
resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==}
4135
-
cpu: [x64]
4136
-
os: [darwin]
4137
-
4138
-
turbo-darwin-arm64@2.3.3:
4139
-
resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==}
4140
-
cpu: [arm64]
4141
-
os: [darwin]
4142
-
4143
-
turbo-linux-64@2.3.3:
4144
-
resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==}
4145
-
cpu: [x64]
4146
-
os: [linux]
4147
-
4148
-
turbo-linux-arm64@2.3.3:
4149
-
resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==}
4150
-
cpu: [arm64]
4151
-
os: [linux]
4152
-
4153
-
turbo-windows-64@2.3.3:
4154
-
resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==}
4155
-
cpu: [x64]
4156
-
os: [win32]
4157
-
4158
-
turbo-windows-arm64@2.3.3:
4159
-
resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==}
4160
-
cpu: [arm64]
4161
-
os: [win32]
4162
-
4163
-
turbo@2.3.3:
4164
-
resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==}
4165
-
hasBin: true
4166
-
4167
-
type-check@0.4.0:
4168
-
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
4169
-
engines: {node: '>= 0.8.0'}
4170
-
4171
-
typescript-eslint@8.17.0:
4172
-
resolution: {integrity: sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==}
4173
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
4174
-
peerDependencies:
4175
-
eslint: ^8.57.0 || ^9.0.0
4176
-
typescript: '*'
4177
-
peerDependenciesMeta:
4178
-
typescript:
4179
-
optional: true
4180
-
4181
-
typescript@5.6.3:
4182
-
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
4183
-
engines: {node: '>=14.17'}
4184
-
hasBin: true
4185
-
4186
-
typescript@5.7.2:
4187
-
resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
4188
-
engines: {node: '>=14.17'}
4189
-
hasBin: true
4190
-
4191
-
uint8arrays@3.0.0:
4192
-
resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==}
4193
-
4194
-
uint8arrays@5.1.0:
4195
-
resolution: {integrity: sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==}
4196
-
4197
-
undici-types@6.20.0:
4198
-
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
4199
-
4200
-
undici@6.21.0:
4201
-
resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==}
4202
-
engines: {node: '>=18.17'}
4203
-
4204
-
unplugin@1.16.0:
4205
-
resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==}
4206
-
engines: {node: '>=14.0.0'}
4207
-
4208
-
update-browserslist-db@1.1.1:
4209
-
resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
4210
-
hasBin: true
4211
-
peerDependencies:
4212
-
browserslist: '>= 4.21.0'
4213
-
4214
-
uri-js@4.4.1:
4215
-
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
4216
-
4217
-
use-callback-ref@1.3.3:
4218
-
resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
4219
-
engines: {node: '>=10'}
4220
-
peerDependencies:
4221
-
'@types/react': '*'
4222
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
4223
-
peerDependenciesMeta:
4224
-
'@types/react':
4225
-
optional: true
4226
-
4227
-
use-sidecar@1.1.2:
4228
-
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
4229
-
engines: {node: '>=10'}
4230
-
peerDependencies:
4231
-
'@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
4232
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0
4233
-
peerDependenciesMeta:
4234
-
'@types/react':
4235
-
optional: true
4236
-
4237
-
use-sync-external-store@1.2.2:
4238
-
resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
4239
-
peerDependencies:
4240
-
react: ^16.8.0 || ^17.0.0 || ^18.0.0
4241
-
4242
-
util-deprecate@1.0.2:
4243
-
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
4244
-
4245
-
v8-compile-cache-lib@3.0.1:
4246
-
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
4247
-
4248
-
vite@6.0.2:
4249
-
resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==}
4250
-
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
4251
-
hasBin: true
4252
-
peerDependencies:
4253
-
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
4254
-
jiti: '>=1.21.0'
4255
-
less: '*'
4256
-
lightningcss: ^1.21.0
4257
-
sass: '*'
4258
-
sass-embedded: '*'
4259
-
stylus: '*'
4260
-
sugarss: '*'
4261
-
terser: ^5.16.0
4262
-
tsx: ^4.8.1
4263
-
yaml: ^2.4.2
4264
-
peerDependenciesMeta:
4265
-
'@types/node':
4266
-
optional: true
4267
-
jiti:
4268
-
optional: true
4269
-
less:
4270
-
optional: true
4271
-
lightningcss:
4272
-
optional: true
4273
-
sass:
4274
-
optional: true
4275
-
sass-embedded:
4276
-
optional: true
4277
-
stylus:
4278
-
optional: true
4279
-
sugarss:
4280
-
optional: true
4281
-
terser:
4282
-
optional: true
4283
-
tsx:
4284
-
optional: true
4285
-
yaml:
4286
-
optional: true
4287
-
4288
-
web-streams-polyfill@3.3.3:
4289
-
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
4290
-
engines: {node: '>= 8'}
4291
-
4292
-
webidl-conversions@4.0.2:
4293
-
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
4294
-
4295
-
webpack-virtual-modules@0.6.2:
4296
-
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
4297
-
4298
-
whatwg-url@7.1.0:
4299
-
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
4300
-
4301
-
which@2.0.2:
4302
-
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
4303
-
engines: {node: '>= 8'}
4304
-
hasBin: true
4305
-
4306
-
word-wrap@1.2.5:
4307
-
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
4308
-
engines: {node: '>=0.10.0'}
4309
-
4310
-
wrap-ansi@7.0.0:
4311
-
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
4312
-
engines: {node: '>=10'}
4313
-
4314
-
wrap-ansi@8.1.0:
4315
-
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
4316
-
engines: {node: '>=12'}
4317
-
4318
-
wrappy@1.0.2:
4319
-
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
4320
-
4321
-
ws@8.18.0:
4322
-
resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
4323
-
engines: {node: '>=10.0.0'}
4324
-
peerDependencies:
4325
-
bufferutil: ^4.0.1
4326
-
utf-8-validate: '>=5.0.2'
4327
-
peerDependenciesMeta:
4328
-
bufferutil:
4329
-
optional: true
4330
-
utf-8-validate:
4331
-
optional: true
4332
-
4333
-
xtend@4.0.2:
4334
-
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
4335
-
engines: {node: '>=0.4'}
4336
-
4337
-
yallist@3.1.1:
4338
-
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
4339
-
4340
-
yaml@2.6.1:
4341
-
resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==}
4342
-
engines: {node: '>= 14'}
4343
-
hasBin: true
4344
-
4345
-
yn@3.1.1:
4346
-
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
4347
-
engines: {node: '>=6'}
4348
-
4349
-
yocto-queue@0.1.0:
4350
-
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
4351
-
engines: {node: '>=10'}
4352
-
4353
-
zod@3.23.8:
4354
-
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
4355
-
4356
-
snapshots:
4357
-
4358
-
'@alloc/quick-lru@5.2.0': {}
4359
-
4360
-
'@ampproject/remapping@2.3.0':
4361
-
dependencies:
4362
-
'@jridgewell/gen-mapping': 0.3.5
4363
-
'@jridgewell/trace-mapping': 0.3.25
4364
-
4365
-
'@atcute/bluesky@1.0.9(@atcute/client@2.0.6)':
4366
-
dependencies:
4367
-
'@atcute/client': 2.0.6
4368
-
4369
-
'@atcute/client@2.0.6': {}
4370
-
4371
-
'@atcute/lex-cli@1.0.3':
4372
-
dependencies:
4373
-
'@badrap/valita': 0.3.16
4374
-
'@externdefs/collider': 0.1.0(@badrap/valita@0.3.16)
4375
-
picocolors: 1.1.1
4376
-
prettier: 3.4.1
4377
-
4378
-
'@atcute/oauth-browser-client@1.0.7':
4379
-
dependencies:
4380
-
'@atcute/client': 2.0.6
4381
-
nanoid: 5.0.9
4382
-
4383
-
'@atproto-labs/did-resolver@0.1.6':
4384
-
dependencies:
4385
-
'@atproto-labs/fetch': 0.1.2
4386
-
'@atproto-labs/pipe': 0.1.0
4387
-
'@atproto-labs/simple-store': 0.1.1
4388
-
'@atproto-labs/simple-store-memory': 0.1.1
4389
-
'@atproto/did': 0.1.3
4390
-
zod: 3.23.8
4391
-
4392
-
'@atproto-labs/fetch-node@0.1.4':
4393
-
dependencies:
4394
-
'@atproto-labs/fetch': 0.1.2
4395
-
'@atproto-labs/pipe': 0.1.0
4396
-
ipaddr.js: 2.2.0
4397
-
psl: 1.15.0
4398
-
undici: 6.21.0
4399
-
4400
-
'@atproto-labs/fetch@0.1.2':
4401
-
dependencies:
4402
-
'@atproto-labs/pipe': 0.1.0
4403
-
optionalDependencies:
4404
-
zod: 3.23.8
4405
-
4406
-
'@atproto-labs/handle-resolver-node@0.1.8':
4407
-
dependencies:
4408
-
'@atproto-labs/fetch-node': 0.1.4
4409
-
'@atproto-labs/handle-resolver': 0.1.4
4410
-
'@atproto/did': 0.1.3
4411
-
4412
-
'@atproto-labs/handle-resolver@0.1.4':
4413
-
dependencies:
4414
-
'@atproto-labs/simple-store': 0.1.1
4415
-
'@atproto-labs/simple-store-memory': 0.1.1
4416
-
'@atproto/did': 0.1.3
4417
-
zod: 3.23.8
4418
-
4419
-
'@atproto-labs/identity-resolver@0.1.7':
4420
-
dependencies:
4421
-
'@atproto-labs/did-resolver': 0.1.6
4422
-
'@atproto-labs/handle-resolver': 0.1.4
4423
-
'@atproto/syntax': 0.3.1
4424
-
4425
-
'@atproto-labs/pipe@0.1.0': {}
4426
-
4427
-
'@atproto-labs/simple-store-memory@0.1.1':
4428
-
dependencies:
4429
-
'@atproto-labs/simple-store': 0.1.1
4430
-
lru-cache: 10.4.3
4431
-
4432
-
'@atproto-labs/simple-store@0.1.1': {}
4433
-
4434
-
'@atproto/api@0.13.19':
4435
-
dependencies:
4436
-
'@atproto/common-web': 0.3.1
4437
-
'@atproto/lexicon': 0.4.3
4438
-
'@atproto/syntax': 0.3.1
4439
-
'@atproto/xrpc': 0.6.4
4440
-
await-lock: 2.2.2
4441
-
multiformats: 9.9.0
4442
-
tlds: 1.255.0
4443
-
zod: 3.23.8
4444
-
4445
-
'@atproto/common-web@0.3.1':
4446
-
dependencies:
4447
-
graphemer: 1.4.0
4448
-
multiformats: 9.9.0
4449
-
uint8arrays: 3.0.0
4450
-
zod: 3.23.8
4451
-
4452
-
'@atproto/common@0.4.5':
4453
-
dependencies:
4454
-
'@atproto/common-web': 0.3.1
4455
-
'@ipld/dag-cbor': 7.0.3
4456
-
cbor-x: 1.6.0
4457
-
iso-datestring-validator: 2.2.2
4458
-
multiformats: 9.9.0
4459
-
pino: 8.21.0
4460
-
4461
-
'@atproto/crypto@0.4.2':
4462
-
dependencies:
4463
-
'@noble/curves': 1.7.0
4464
-
'@noble/hashes': 1.6.1
4465
-
uint8arrays: 3.0.0
4466
-
4467
-
'@atproto/did@0.1.3':
4468
-
dependencies:
4469
-
zod: 3.23.8
4470
-
4471
-
'@atproto/jwk-jose@0.1.2':
4472
-
dependencies:
4473
-
'@atproto/jwk': 0.1.1
4474
-
jose: 5.9.6
4475
-
4476
-
'@atproto/jwk-webcrypto@0.1.2':
4477
-
dependencies:
4478
-
'@atproto/jwk': 0.1.1
4479
-
'@atproto/jwk-jose': 0.1.2
4480
-
4481
-
'@atproto/jwk@0.1.1':
4482
-
dependencies:
4483
-
multiformats: 9.9.0
4484
-
zod: 3.23.8
4485
-
4486
-
'@atproto/lexicon@0.4.3':
4487
-
dependencies:
4488
-
'@atproto/common-web': 0.3.1
4489
-
'@atproto/syntax': 0.3.1
4490
-
iso-datestring-validator: 2.2.2
4491
-
multiformats: 9.9.0
4492
-
zod: 3.23.8
4493
-
4494
-
'@atproto/oauth-client-node@0.2.3':
4495
-
dependencies:
4496
-
'@atproto-labs/did-resolver': 0.1.6
4497
-
'@atproto-labs/handle-resolver-node': 0.1.8
4498
-
'@atproto-labs/simple-store': 0.1.1
4499
-
'@atproto/did': 0.1.3
4500
-
'@atproto/jwk': 0.1.1
4501
-
'@atproto/jwk-jose': 0.1.2
4502
-
'@atproto/jwk-webcrypto': 0.1.2
4503
-
'@atproto/oauth-client': 0.3.3
4504
-
'@atproto/oauth-types': 0.2.1
4505
-
4506
-
'@atproto/oauth-client@0.3.3':
4507
-
dependencies:
4508
-
'@atproto-labs/did-resolver': 0.1.6
4509
-
'@atproto-labs/fetch': 0.1.2
4510
-
'@atproto-labs/handle-resolver': 0.1.4
4511
-
'@atproto-labs/identity-resolver': 0.1.7
4512
-
'@atproto-labs/simple-store': 0.1.1
4513
-
'@atproto-labs/simple-store-memory': 0.1.1
4514
-
'@atproto/did': 0.1.3
4515
-
'@atproto/jwk': 0.1.1
4516
-
'@atproto/oauth-types': 0.2.1
4517
-
'@atproto/xrpc': 0.6.4
4518
-
multiformats: 9.9.0
4519
-
zod: 3.23.8
4520
-
4521
-
'@atproto/oauth-types@0.2.1':
4522
-
dependencies:
4523
-
'@atproto/jwk': 0.1.1
4524
-
zod: 3.23.8
4525
-
4526
-
'@atproto/syntax@0.3.1': {}
4527
-
4528
-
'@atproto/xrpc@0.6.4':
4529
-
dependencies:
4530
-
'@atproto/lexicon': 0.4.3
4531
-
zod: 3.23.8
4532
-
4533
-
'@babel/code-frame@7.26.2':
4534
-
dependencies:
4535
-
'@babel/helper-validator-identifier': 7.25.9
4536
-
js-tokens: 4.0.0
4537
-
picocolors: 1.1.1
4538
-
4539
-
'@babel/compat-data@7.26.2': {}
4540
-
4541
-
'@babel/core@7.26.0':
4542
-
dependencies:
4543
-
'@ampproject/remapping': 2.3.0
4544
-
'@babel/code-frame': 7.26.2
4545
-
'@babel/generator': 7.26.2
4546
-
'@babel/helper-compilation-targets': 7.25.9
4547
-
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
4548
-
'@babel/helpers': 7.26.0
4549
-
'@babel/parser': 7.26.2
4550
-
'@babel/template': 7.25.9
4551
-
'@babel/traverse': 7.25.9
4552
-
'@babel/types': 7.26.0
4553
-
convert-source-map: 2.0.0
4554
-
debug: 4.3.7
4555
-
gensync: 1.0.0-beta.2
4556
-
json5: 2.2.3
4557
-
semver: 6.3.1
4558
-
transitivePeerDependencies:
4559
-
- supports-color
4560
-
4561
-
'@babel/generator@7.26.2':
4562
-
dependencies:
4563
-
'@babel/parser': 7.26.2
4564
-
'@babel/types': 7.26.0
4565
-
'@jridgewell/gen-mapping': 0.3.5
4566
-
'@jridgewell/trace-mapping': 0.3.25
4567
-
jsesc: 3.0.2
4568
-
4569
-
'@babel/helper-compilation-targets@7.25.9':
4570
-
dependencies:
4571
-
'@babel/compat-data': 7.26.2
4572
-
'@babel/helper-validator-option': 7.25.9
4573
-
browserslist: 4.24.2
4574
-
lru-cache: 5.1.1
4575
-
semver: 6.3.1
4576
-
4577
-
'@babel/helper-module-imports@7.25.9':
4578
-
dependencies:
4579
-
'@babel/traverse': 7.25.9
4580
-
'@babel/types': 7.26.0
4581
-
transitivePeerDependencies:
4582
-
- supports-color
4583
-
4584
-
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
4585
-
dependencies:
4586
-
'@babel/core': 7.26.0
4587
-
'@babel/helper-module-imports': 7.25.9
4588
-
'@babel/helper-validator-identifier': 7.25.9
4589
-
'@babel/traverse': 7.25.9
4590
-
transitivePeerDependencies:
4591
-
- supports-color
4592
-
4593
-
'@babel/helper-plugin-utils@7.25.9': {}
4594
-
4595
-
'@babel/helper-string-parser@7.25.9': {}
4596
-
4597
-
'@babel/helper-validator-identifier@7.25.9': {}
4598
-
4599
-
'@babel/helper-validator-option@7.25.9': {}
4600
-
4601
-
'@babel/helpers@7.26.0':
4602
-
dependencies:
4603
-
'@babel/template': 7.25.9
4604
-
'@babel/types': 7.26.0
4605
-
4606
-
'@babel/parser@7.26.2':
4607
-
dependencies:
4608
-
'@babel/types': 7.26.0
4609
-
4610
-
'@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)':
4611
-
dependencies:
4612
-
'@babel/core': 7.26.0
4613
-
'@babel/helper-plugin-utils': 7.25.9
4614
-
4615
-
'@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)':
4616
-
dependencies:
4617
-
'@babel/core': 7.26.0
4618
-
'@babel/helper-plugin-utils': 7.25.9
4619
-
4620
-
'@babel/template@7.25.9':
4621
-
dependencies:
4622
-
'@babel/code-frame': 7.26.2
4623
-
'@babel/parser': 7.26.2
4624
-
'@babel/types': 7.26.0
4625
-
4626
-
'@babel/traverse@7.25.9':
4627
-
dependencies:
4628
-
'@babel/code-frame': 7.26.2
4629
-
'@babel/generator': 7.26.2
4630
-
'@babel/parser': 7.26.2
4631
-
'@babel/template': 7.25.9
4632
-
'@babel/types': 7.26.0
4633
-
debug: 4.3.7
4634
-
globals: 11.12.0
4635
-
transitivePeerDependencies:
4636
-
- supports-color
4637
-
4638
-
'@babel/types@7.26.0':
4639
-
dependencies:
4640
-
'@babel/helper-string-parser': 7.25.9
4641
-
'@babel/helper-validator-identifier': 7.25.9
4642
-
4643
-
'@badrap/valita@0.3.16': {}
4644
-
4645
-
'@cbor-extract/cbor-extract-darwin-arm64@2.2.0':
4646
-
optional: true
4647
-
4648
-
'@cbor-extract/cbor-extract-darwin-x64@2.2.0':
4649
-
optional: true
4650
-
4651
-
'@cbor-extract/cbor-extract-linux-arm64@2.2.0':
4652
-
optional: true
4653
-
4654
-
'@cbor-extract/cbor-extract-linux-arm@2.2.0':
4655
-
optional: true
4656
-
4657
-
'@cbor-extract/cbor-extract-linux-x64@2.2.0':
4658
-
optional: true
4659
-
4660
-
'@cbor-extract/cbor-extract-win32-x64@2.2.0':
4661
-
optional: true
4662
-
4663
-
'@cspotcode/source-map-support@0.8.1':
4664
-
dependencies:
4665
-
'@jridgewell/trace-mapping': 0.3.9
4666
-
4667
-
'@dnd-kit/accessibility@3.1.1(react@19.0.0)':
4668
-
dependencies:
4669
-
react: 19.0.0
4670
-
tslib: 2.8.1
4671
-
4672
-
'@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
4673
-
dependencies:
4674
-
'@dnd-kit/accessibility': 3.1.1(react@19.0.0)
4675
-
'@dnd-kit/utilities': 3.2.2(react@19.0.0)
4676
-
react: 19.0.0
4677
-
react-dom: 19.0.0(react@19.0.0)
4678
-
tslib: 2.8.1
4679
-
4680
-
'@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
4681
-
dependencies:
4682
-
'@dnd-kit/core': 6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
4683
-
'@dnd-kit/utilities': 3.2.2(react@19.0.0)
4684
-
react: 19.0.0
4685
-
tslib: 2.8.1
4686
-
4687
-
'@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
4688
-
dependencies:
4689
-
'@dnd-kit/core': 6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
4690
-
'@dnd-kit/utilities': 3.2.2(react@19.0.0)
4691
-
react: 19.0.0
4692
-
tslib: 2.8.1
4693
-
4694
-
'@dnd-kit/utilities@3.2.2(react@19.0.0)':
4695
-
dependencies:
4696
-
react: 19.0.0
4697
-
tslib: 2.8.1
4698
-
4699
-
'@drizzle-team/brocli@0.10.2': {}
4700
-
4701
-
'@esbuild-kit/core-utils@3.3.2':
4702
-
dependencies:
4703
-
esbuild: 0.18.20
4704
-
source-map-support: 0.5.21
4705
-
4706
-
'@esbuild-kit/esm-loader@2.6.5':
4707
-
dependencies:
4708
-
'@esbuild-kit/core-utils': 3.3.2
4709
-
get-tsconfig: 4.8.1
4710
-
4711
-
'@esbuild/aix-ppc64@0.19.12':
4712
-
optional: true
4713
-
4714
-
'@esbuild/aix-ppc64@0.23.1':
4715
-
optional: true
4716
-
4717
-
'@esbuild/aix-ppc64@0.24.0':
4718
-
optional: true
4719
-
4720
-
'@esbuild/android-arm64@0.18.20':
4721
-
optional: true
4722
-
4723
-
'@esbuild/android-arm64@0.19.12':
4724
-
optional: true
4725
-
4726
-
'@esbuild/android-arm64@0.23.1':
4727
-
optional: true
4728
-
4729
-
'@esbuild/android-arm64@0.24.0':
4730
-
optional: true
4731
-
4732
-
'@esbuild/android-arm@0.18.20':
4733
-
optional: true
4734
-
4735
-
'@esbuild/android-arm@0.19.12':
4736
-
optional: true
4737
-
4738
-
'@esbuild/android-arm@0.23.1':
4739
-
optional: true
4740
-
4741
-
'@esbuild/android-arm@0.24.0':
4742
-
optional: true
4743
-
4744
-
'@esbuild/android-x64@0.18.20':
4745
-
optional: true
4746
-
4747
-
'@esbuild/android-x64@0.19.12':
4748
-
optional: true
4749
-
4750
-
'@esbuild/android-x64@0.23.1':
4751
-
optional: true
4752
-
4753
-
'@esbuild/android-x64@0.24.0':
4754
-
optional: true
4755
-
4756
-
'@esbuild/darwin-arm64@0.18.20':
4757
-
optional: true
4758
-
4759
-
'@esbuild/darwin-arm64@0.19.12':
4760
-
optional: true
4761
-
4762
-
'@esbuild/darwin-arm64@0.23.1':
4763
-
optional: true
4764
-
4765
-
'@esbuild/darwin-arm64@0.24.0':
4766
-
optional: true
4767
-
4768
-
'@esbuild/darwin-x64@0.18.20':
4769
-
optional: true
4770
-
4771
-
'@esbuild/darwin-x64@0.19.12':
4772
-
optional: true
4773
-
4774
-
'@esbuild/darwin-x64@0.23.1':
4775
-
optional: true
4776
-
4777
-
'@esbuild/darwin-x64@0.24.0':
4778
-
optional: true
4779
-
4780
-
'@esbuild/freebsd-arm64@0.18.20':
4781
-
optional: true
4782
-
4783
-
'@esbuild/freebsd-arm64@0.19.12':
4784
-
optional: true
4785
-
4786
-
'@esbuild/freebsd-arm64@0.23.1':
4787
-
optional: true
4788
-
4789
-
'@esbuild/freebsd-arm64@0.24.0':
4790
-
optional: true
4791
-
4792
-
'@esbuild/freebsd-x64@0.18.20':
4793
-
optional: true
4794
-
4795
-
'@esbuild/freebsd-x64@0.19.12':
4796
-
optional: true
4797
-
4798
-
'@esbuild/freebsd-x64@0.23.1':
4799
-
optional: true
4800
-
4801
-
'@esbuild/freebsd-x64@0.24.0':
4802
-
optional: true
4803
-
4804
-
'@esbuild/linux-arm64@0.18.20':
4805
-
optional: true
4806
-
4807
-
'@esbuild/linux-arm64@0.19.12':
4808
-
optional: true
4809
-
4810
-
'@esbuild/linux-arm64@0.23.1':
4811
-
optional: true
4812
-
4813
-
'@esbuild/linux-arm64@0.24.0':
4814
-
optional: true
4815
-
4816
-
'@esbuild/linux-arm@0.18.20':
4817
-
optional: true
4818
-
4819
-
'@esbuild/linux-arm@0.19.12':
4820
-
optional: true
4821
-
4822
-
'@esbuild/linux-arm@0.23.1':
4823
-
optional: true
4824
-
4825
-
'@esbuild/linux-arm@0.24.0':
4826
-
optional: true
4827
-
4828
-
'@esbuild/linux-ia32@0.18.20':
4829
-
optional: true
4830
-
4831
-
'@esbuild/linux-ia32@0.19.12':
4832
-
optional: true
4833
-
4834
-
'@esbuild/linux-ia32@0.23.1':
4835
-
optional: true
4836
-
4837
-
'@esbuild/linux-ia32@0.24.0':
4838
-
optional: true
4839
-
4840
-
'@esbuild/linux-loong64@0.18.20':
4841
-
optional: true
4842
-
4843
-
'@esbuild/linux-loong64@0.19.12':
4844
-
optional: true
4845
-
4846
-
'@esbuild/linux-loong64@0.23.1':
4847
-
optional: true
4848
-
4849
-
'@esbuild/linux-loong64@0.24.0':
4850
-
optional: true
4851
-
4852
-
'@esbuild/linux-mips64el@0.18.20':
4853
-
optional: true
4854
-
4855
-
'@esbuild/linux-mips64el@0.19.12':
4856
-
optional: true
4857
-
4858
-
'@esbuild/linux-mips64el@0.23.1':
4859
-
optional: true
4860
-
4861
-
'@esbuild/linux-mips64el@0.24.0':
4862
-
optional: true
4863
-
4864
-
'@esbuild/linux-ppc64@0.18.20':
4865
-
optional: true
4866
-
4867
-
'@esbuild/linux-ppc64@0.19.12':
4868
-
optional: true
4869
-
4870
-
'@esbuild/linux-ppc64@0.23.1':
4871
-
optional: true
4872
-
4873
-
'@esbuild/linux-ppc64@0.24.0':
4874
-
optional: true
4875
-
4876
-
'@esbuild/linux-riscv64@0.18.20':
4877
-
optional: true
4878
-
4879
-
'@esbuild/linux-riscv64@0.19.12':
4880
-
optional: true
4881
-
4882
-
'@esbuild/linux-riscv64@0.23.1':
4883
-
optional: true
4884
-
4885
-
'@esbuild/linux-riscv64@0.24.0':
4886
-
optional: true
4887
-
4888
-
'@esbuild/linux-s390x@0.18.20':
4889
-
optional: true
4890
-
4891
-
'@esbuild/linux-s390x@0.19.12':
4892
-
optional: true
4893
-
4894
-
'@esbuild/linux-s390x@0.23.1':
4895
-
optional: true
4896
-
4897
-
'@esbuild/linux-s390x@0.24.0':
4898
-
optional: true
4899
-
4900
-
'@esbuild/linux-x64@0.18.20':
4901
-
optional: true
4902
-
4903
-
'@esbuild/linux-x64@0.19.12':
4904
-
optional: true
4905
-
4906
-
'@esbuild/linux-x64@0.23.1':
4907
-
optional: true
4908
-
4909
-
'@esbuild/linux-x64@0.24.0':
4910
-
optional: true
4911
-
4912
-
'@esbuild/netbsd-x64@0.18.20':
4913
-
optional: true
4914
-
4915
-
'@esbuild/netbsd-x64@0.19.12':
4916
-
optional: true
4917
-
4918
-
'@esbuild/netbsd-x64@0.23.1':
4919
-
optional: true
4920
-
4921
-
'@esbuild/netbsd-x64@0.24.0':
4922
-
optional: true
4923
-
4924
-
'@esbuild/openbsd-arm64@0.23.1':
4925
-
optional: true
4926
-
4927
-
'@esbuild/openbsd-arm64@0.24.0':
4928
-
optional: true
4929
-
4930
-
'@esbuild/openbsd-x64@0.18.20':
4931
-
optional: true
4932
-
4933
-
'@esbuild/openbsd-x64@0.19.12':
4934
-
optional: true
4935
-
4936
-
'@esbuild/openbsd-x64@0.23.1':
4937
-
optional: true
4938
-
4939
-
'@esbuild/openbsd-x64@0.24.0':
4940
-
optional: true
4941
-
4942
-
'@esbuild/sunos-x64@0.18.20':
4943
-
optional: true
4944
-
4945
-
'@esbuild/sunos-x64@0.19.12':
4946
-
optional: true
4947
-
4948
-
'@esbuild/sunos-x64@0.23.1':
4949
-
optional: true
4950
-
4951
-
'@esbuild/sunos-x64@0.24.0':
4952
-
optional: true
4953
-
4954
-
'@esbuild/win32-arm64@0.18.20':
4955
-
optional: true
4956
-
4957
-
'@esbuild/win32-arm64@0.19.12':
4958
-
optional: true
4959
-
4960
-
'@esbuild/win32-arm64@0.23.1':
4961
-
optional: true
4962
-
4963
-
'@esbuild/win32-arm64@0.24.0':
4964
-
optional: true
4965
-
4966
-
'@esbuild/win32-ia32@0.18.20':
4967
-
optional: true
4968
-
4969
-
'@esbuild/win32-ia32@0.19.12':
4970
-
optional: true
4971
-
4972
-
'@esbuild/win32-ia32@0.23.1':
4973
-
optional: true
4974
-
4975
-
'@esbuild/win32-ia32@0.24.0':
4976
-
optional: true
4977
-
4978
-
'@esbuild/win32-x64@0.18.20':
4979
-
optional: true
4980
-
4981
-
'@esbuild/win32-x64@0.19.12':
4982
-
optional: true
4983
-
4984
-
'@esbuild/win32-x64@0.23.1':
4985
-
optional: true
4986
-
4987
-
'@esbuild/win32-x64@0.24.0':
4988
-
optional: true
4989
-
4990
-
'@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@2.4.1))':
4991
-
dependencies:
4992
-
eslint: 9.16.0(jiti@2.4.1)
4993
-
eslint-visitor-keys: 3.4.3
4994
-
4995
-
'@eslint-community/regexpp@4.12.1': {}
4996
-
4997
-
'@eslint/config-array@0.19.0':
4998
-
dependencies:
4999
-
'@eslint/object-schema': 2.1.4
5000
-
debug: 4.3.7
5001
-
minimatch: 3.1.2
5002
-
transitivePeerDependencies:
5003
-
- supports-color
5004
-
5005
-
'@eslint/core@0.9.0': {}
5006
-
5007
-
'@eslint/eslintrc@3.2.0':
5008
-
dependencies:
5009
-
ajv: 6.12.6
5010
-
debug: 4.3.7
5011
-
espree: 10.3.0
5012
-
globals: 14.0.0
5013
-
ignore: 5.3.2
5014
-
import-fresh: 3.3.0
5015
-
js-yaml: 4.1.0
5016
-
minimatch: 3.1.2
5017
-
strip-json-comments: 3.1.1
5018
-
transitivePeerDependencies:
5019
-
- supports-color
5020
-
5021
-
'@eslint/js@9.16.0': {}
5022
-
5023
-
'@eslint/object-schema@2.1.4': {}
5024
-
5025
-
'@eslint/plugin-kit@0.2.3':
5026
-
dependencies:
5027
-
levn: 0.4.1
5028
-
5029
-
'@externdefs/collider@0.1.0(@badrap/valita@0.3.16)':
5030
-
dependencies:
5031
-
'@badrap/valita': 0.3.16
5032
-
5033
-
'@floating-ui/core@1.6.8':
5034
-
dependencies:
5035
-
'@floating-ui/utils': 0.2.8
5036
-
5037
-
'@floating-ui/dom@1.6.12':
5038
-
dependencies:
5039
-
'@floating-ui/core': 1.6.8
5040
-
'@floating-ui/utils': 0.2.8
5041
-
5042
-
'@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5043
-
dependencies:
5044
-
'@floating-ui/dom': 1.6.12
5045
-
react: 19.0.0
5046
-
react-dom: 19.0.0(react@19.0.0)
5047
-
5048
-
'@floating-ui/utils@0.2.8': {}
5049
-
5050
-
'@hono/node-server@1.13.7(hono@4.6.12)':
5051
-
dependencies:
5052
-
hono: 4.6.12
5053
-
5054
-
'@hookform/resolvers@3.9.1(react-hook-form@7.54.1(react@19.0.0))':
5055
-
dependencies:
5056
-
react-hook-form: 7.54.1(react@19.0.0)
5057
-
5058
-
'@humanfs/core@0.19.1': {}
5059
-
5060
-
'@humanfs/node@0.16.6':
5061
-
dependencies:
5062
-
'@humanfs/core': 0.19.1
5063
-
'@humanwhocodes/retry': 0.3.1
5064
-
5065
-
'@humanwhocodes/module-importer@1.0.1': {}
5066
-
5067
-
'@humanwhocodes/retry@0.3.1': {}
5068
-
5069
-
'@humanwhocodes/retry@0.4.1': {}
5070
-
5071
-
'@ipld/dag-cbor@7.0.3':
5072
-
dependencies:
5073
-
cborg: 1.10.2
5074
-
multiformats: 9.9.0
5075
-
5076
-
'@isaacs/cliui@8.0.2':
5077
-
dependencies:
5078
-
string-width: 5.1.2
5079
-
string-width-cjs: string-width@4.2.3
5080
-
strip-ansi: 7.1.0
5081
-
strip-ansi-cjs: strip-ansi@6.0.1
5082
-
wrap-ansi: 8.1.0
5083
-
wrap-ansi-cjs: wrap-ansi@7.0.0
5084
-
5085
-
'@jridgewell/gen-mapping@0.3.5':
5086
-
dependencies:
5087
-
'@jridgewell/set-array': 1.2.1
5088
-
'@jridgewell/sourcemap-codec': 1.5.0
5089
-
'@jridgewell/trace-mapping': 0.3.25
5090
-
5091
-
'@jridgewell/resolve-uri@3.1.2': {}
5092
-
5093
-
'@jridgewell/set-array@1.2.1': {}
5094
-
5095
-
'@jridgewell/sourcemap-codec@1.5.0': {}
5096
-
5097
-
'@jridgewell/trace-mapping@0.3.25':
5098
-
dependencies:
5099
-
'@jridgewell/resolve-uri': 3.1.2
5100
-
'@jridgewell/sourcemap-codec': 1.5.0
5101
-
5102
-
'@jridgewell/trace-mapping@0.3.9':
5103
-
dependencies:
5104
-
'@jridgewell/resolve-uri': 3.1.2
5105
-
'@jridgewell/sourcemap-codec': 1.5.0
5106
-
5107
-
'@libsql/client@0.14.0(bufferutil@4.0.8)':
5108
-
dependencies:
5109
-
'@libsql/core': 0.14.0
5110
-
'@libsql/hrana-client': 0.7.0(bufferutil@4.0.8)
5111
-
js-base64: 3.7.7
5112
-
libsql: 0.4.7
5113
-
promise-limit: 2.7.0
5114
-
transitivePeerDependencies:
5115
-
- bufferutil
5116
-
- utf-8-validate
5117
-
5118
-
'@libsql/core@0.14.0':
5119
-
dependencies:
5120
-
js-base64: 3.7.7
5121
-
5122
-
'@libsql/darwin-arm64@0.4.7':
5123
-
optional: true
5124
-
5125
-
'@libsql/darwin-x64@0.4.7':
5126
-
optional: true
5127
-
5128
-
'@libsql/hrana-client@0.7.0(bufferutil@4.0.8)':
5129
-
dependencies:
5130
-
'@libsql/isomorphic-fetch': 0.3.1
5131
-
'@libsql/isomorphic-ws': 0.1.5(bufferutil@4.0.8)
5132
-
js-base64: 3.7.7
5133
-
node-fetch: 3.3.2
5134
-
transitivePeerDependencies:
5135
-
- bufferutil
5136
-
- utf-8-validate
5137
-
5138
-
'@libsql/isomorphic-fetch@0.3.1': {}
5139
-
5140
-
'@libsql/isomorphic-ws@0.1.5(bufferutil@4.0.8)':
5141
-
dependencies:
5142
-
'@types/ws': 8.5.13
5143
-
ws: 8.18.0(bufferutil@4.0.8)
5144
-
transitivePeerDependencies:
5145
-
- bufferutil
5146
-
- utf-8-validate
5147
-
5148
-
'@libsql/linux-arm64-gnu@0.4.7':
5149
-
optional: true
5150
-
5151
-
'@libsql/linux-arm64-musl@0.4.7':
5152
-
optional: true
5153
-
5154
-
'@libsql/linux-x64-gnu@0.4.7':
5155
-
optional: true
5156
-
5157
-
'@libsql/linux-x64-musl@0.4.7':
5158
-
optional: true
5159
-
5160
-
'@libsql/win32-x64-msvc@0.4.7':
5161
-
optional: true
5162
-
5163
-
'@neon-rs/load@0.0.4': {}
5164
-
5165
-
'@noble/curves@1.7.0':
5166
-
dependencies:
5167
-
'@noble/hashes': 1.6.0
5168
-
5169
-
'@noble/hashes@1.6.0': {}
5170
-
5171
-
'@noble/hashes@1.6.1': {}
5172
-
5173
-
'@nodelib/fs.scandir@2.1.5':
5174
-
dependencies:
5175
-
'@nodelib/fs.stat': 2.0.5
5176
-
run-parallel: 1.2.0
5177
-
5178
-
'@nodelib/fs.stat@2.0.5': {}
5179
-
5180
-
'@nodelib/fs.walk@1.2.8':
5181
-
dependencies:
5182
-
'@nodelib/fs.scandir': 2.1.5
5183
-
fastq: 1.17.1
5184
-
5185
-
'@opentelemetry/api-logs@0.52.1':
5186
-
dependencies:
5187
-
'@opentelemetry/api': 1.9.0
5188
-
5189
-
'@opentelemetry/api-logs@0.53.0':
5190
-
dependencies:
5191
-
'@opentelemetry/api': 1.9.0
5192
-
5193
-
'@opentelemetry/api-logs@0.54.2':
5194
-
dependencies:
5195
-
'@opentelemetry/api': 1.9.0
5196
-
5197
-
'@opentelemetry/api@1.9.0': {}
5198
-
5199
-
'@opentelemetry/context-async-hooks@1.29.0(@opentelemetry/api@1.9.0)':
5200
-
dependencies:
5201
-
'@opentelemetry/api': 1.9.0
5202
-
5203
-
'@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0)':
5204
-
dependencies:
5205
-
'@opentelemetry/api': 1.9.0
5206
-
'@opentelemetry/semantic-conventions': 1.27.0
5207
-
5208
-
'@opentelemetry/core@1.29.0(@opentelemetry/api@1.9.0)':
5209
-
dependencies:
5210
-
'@opentelemetry/api': 1.9.0
5211
-
'@opentelemetry/semantic-conventions': 1.28.0
5212
-
5213
-
'@opentelemetry/instrumentation-amqplib@0.43.0(@opentelemetry/api@1.9.0)':
5214
-
dependencies:
5215
-
'@opentelemetry/api': 1.9.0
5216
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5217
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5218
-
'@opentelemetry/semantic-conventions': 1.28.0
5219
-
transitivePeerDependencies:
5220
-
- supports-color
5221
-
5222
-
'@opentelemetry/instrumentation-connect@0.40.0(@opentelemetry/api@1.9.0)':
5223
-
dependencies:
5224
-
'@opentelemetry/api': 1.9.0
5225
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5226
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5227
-
'@opentelemetry/semantic-conventions': 1.28.0
5228
-
'@types/connect': 3.4.36
5229
-
transitivePeerDependencies:
5230
-
- supports-color
5231
-
5232
-
'@opentelemetry/instrumentation-dataloader@0.12.0(@opentelemetry/api@1.9.0)':
5233
-
dependencies:
5234
-
'@opentelemetry/api': 1.9.0
5235
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5236
-
transitivePeerDependencies:
5237
-
- supports-color
5238
-
5239
-
'@opentelemetry/instrumentation-express@0.44.0(@opentelemetry/api@1.9.0)':
5240
-
dependencies:
5241
-
'@opentelemetry/api': 1.9.0
5242
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5243
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5244
-
'@opentelemetry/semantic-conventions': 1.28.0
5245
-
transitivePeerDependencies:
5246
-
- supports-color
5247
-
5248
-
'@opentelemetry/instrumentation-fastify@0.41.0(@opentelemetry/api@1.9.0)':
5249
-
dependencies:
5250
-
'@opentelemetry/api': 1.9.0
5251
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5252
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5253
-
'@opentelemetry/semantic-conventions': 1.28.0
5254
-
transitivePeerDependencies:
5255
-
- supports-color
5256
-
5257
-
'@opentelemetry/instrumentation-fs@0.16.0(@opentelemetry/api@1.9.0)':
5258
-
dependencies:
5259
-
'@opentelemetry/api': 1.9.0
5260
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5261
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5262
-
transitivePeerDependencies:
5263
-
- supports-color
5264
-
5265
-
'@opentelemetry/instrumentation-generic-pool@0.39.0(@opentelemetry/api@1.9.0)':
5266
-
dependencies:
5267
-
'@opentelemetry/api': 1.9.0
5268
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5269
-
transitivePeerDependencies:
5270
-
- supports-color
5271
-
5272
-
'@opentelemetry/instrumentation-graphql@0.44.0(@opentelemetry/api@1.9.0)':
5273
-
dependencies:
5274
-
'@opentelemetry/api': 1.9.0
5275
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5276
-
transitivePeerDependencies:
5277
-
- supports-color
5278
-
5279
-
'@opentelemetry/instrumentation-hapi@0.41.0(@opentelemetry/api@1.9.0)':
5280
-
dependencies:
5281
-
'@opentelemetry/api': 1.9.0
5282
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5283
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5284
-
'@opentelemetry/semantic-conventions': 1.28.0
5285
-
transitivePeerDependencies:
5286
-
- supports-color
5287
-
5288
-
'@opentelemetry/instrumentation-http@0.53.0(@opentelemetry/api@1.9.0)':
5289
-
dependencies:
5290
-
'@opentelemetry/api': 1.9.0
5291
-
'@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0)
5292
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5293
-
'@opentelemetry/semantic-conventions': 1.27.0
5294
-
semver: 7.6.3
5295
-
transitivePeerDependencies:
5296
-
- supports-color
5297
-
5298
-
'@opentelemetry/instrumentation-ioredis@0.43.0(@opentelemetry/api@1.9.0)':
5299
-
dependencies:
5300
-
'@opentelemetry/api': 1.9.0
5301
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5302
-
'@opentelemetry/redis-common': 0.36.2
5303
-
'@opentelemetry/semantic-conventions': 1.28.0
5304
-
transitivePeerDependencies:
5305
-
- supports-color
5306
-
5307
-
'@opentelemetry/instrumentation-kafkajs@0.4.0(@opentelemetry/api@1.9.0)':
5308
-
dependencies:
5309
-
'@opentelemetry/api': 1.9.0
5310
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5311
-
'@opentelemetry/semantic-conventions': 1.28.0
5312
-
transitivePeerDependencies:
5313
-
- supports-color
5314
-
5315
-
'@opentelemetry/instrumentation-knex@0.41.0(@opentelemetry/api@1.9.0)':
5316
-
dependencies:
5317
-
'@opentelemetry/api': 1.9.0
5318
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5319
-
'@opentelemetry/semantic-conventions': 1.28.0
5320
-
transitivePeerDependencies:
5321
-
- supports-color
5322
-
5323
-
'@opentelemetry/instrumentation-koa@0.43.0(@opentelemetry/api@1.9.0)':
5324
-
dependencies:
5325
-
'@opentelemetry/api': 1.9.0
5326
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5327
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5328
-
'@opentelemetry/semantic-conventions': 1.28.0
5329
-
transitivePeerDependencies:
5330
-
- supports-color
5331
-
5332
-
'@opentelemetry/instrumentation-lru-memoizer@0.40.0(@opentelemetry/api@1.9.0)':
5333
-
dependencies:
5334
-
'@opentelemetry/api': 1.9.0
5335
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5336
-
transitivePeerDependencies:
5337
-
- supports-color
5338
-
5339
-
'@opentelemetry/instrumentation-mongodb@0.48.0(@opentelemetry/api@1.9.0)':
5340
-
dependencies:
5341
-
'@opentelemetry/api': 1.9.0
5342
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5343
-
'@opentelemetry/semantic-conventions': 1.28.0
5344
-
transitivePeerDependencies:
5345
-
- supports-color
5346
-
5347
-
'@opentelemetry/instrumentation-mongoose@0.42.0(@opentelemetry/api@1.9.0)':
5348
-
dependencies:
5349
-
'@opentelemetry/api': 1.9.0
5350
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5351
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5352
-
'@opentelemetry/semantic-conventions': 1.28.0
5353
-
transitivePeerDependencies:
5354
-
- supports-color
5355
-
5356
-
'@opentelemetry/instrumentation-mysql2@0.41.0(@opentelemetry/api@1.9.0)':
5357
-
dependencies:
5358
-
'@opentelemetry/api': 1.9.0
5359
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5360
-
'@opentelemetry/semantic-conventions': 1.28.0
5361
-
'@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
5362
-
transitivePeerDependencies:
5363
-
- supports-color
5364
-
5365
-
'@opentelemetry/instrumentation-mysql@0.41.0(@opentelemetry/api@1.9.0)':
5366
-
dependencies:
5367
-
'@opentelemetry/api': 1.9.0
5368
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5369
-
'@opentelemetry/semantic-conventions': 1.28.0
5370
-
'@types/mysql': 2.15.26
5371
-
transitivePeerDependencies:
5372
-
- supports-color
5373
-
5374
-
'@opentelemetry/instrumentation-nestjs-core@0.40.0(@opentelemetry/api@1.9.0)':
5375
-
dependencies:
5376
-
'@opentelemetry/api': 1.9.0
5377
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5378
-
'@opentelemetry/semantic-conventions': 1.28.0
5379
-
transitivePeerDependencies:
5380
-
- supports-color
5381
-
5382
-
'@opentelemetry/instrumentation-pg@0.44.0(@opentelemetry/api@1.9.0)':
5383
-
dependencies:
5384
-
'@opentelemetry/api': 1.9.0
5385
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5386
-
'@opentelemetry/semantic-conventions': 1.28.0
5387
-
'@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
5388
-
'@types/pg': 8.6.1
5389
-
'@types/pg-pool': 2.0.6
5390
-
transitivePeerDependencies:
5391
-
- supports-color
5392
-
5393
-
'@opentelemetry/instrumentation-redis-4@0.42.0(@opentelemetry/api@1.9.0)':
5394
-
dependencies:
5395
-
'@opentelemetry/api': 1.9.0
5396
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5397
-
'@opentelemetry/redis-common': 0.36.2
5398
-
'@opentelemetry/semantic-conventions': 1.28.0
5399
-
transitivePeerDependencies:
5400
-
- supports-color
5401
-
5402
-
'@opentelemetry/instrumentation-tedious@0.15.0(@opentelemetry/api@1.9.0)':
5403
-
dependencies:
5404
-
'@opentelemetry/api': 1.9.0
5405
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5406
-
'@opentelemetry/semantic-conventions': 1.28.0
5407
-
'@types/tedious': 4.0.14
5408
-
transitivePeerDependencies:
5409
-
- supports-color
5410
-
5411
-
'@opentelemetry/instrumentation-undici@0.6.0(@opentelemetry/api@1.9.0)':
5412
-
dependencies:
5413
-
'@opentelemetry/api': 1.9.0
5414
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5415
-
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
5416
-
transitivePeerDependencies:
5417
-
- supports-color
5418
-
5419
-
'@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0)':
5420
-
dependencies:
5421
-
'@opentelemetry/api': 1.9.0
5422
-
'@opentelemetry/api-logs': 0.52.1
5423
-
'@types/shimmer': 1.2.0
5424
-
import-in-the-middle: 1.11.3
5425
-
require-in-the-middle: 7.4.0
5426
-
semver: 7.6.3
5427
-
shimmer: 1.2.1
5428
-
transitivePeerDependencies:
5429
-
- supports-color
5430
-
5431
-
'@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0)':
5432
-
dependencies:
5433
-
'@opentelemetry/api': 1.9.0
5434
-
'@opentelemetry/api-logs': 0.53.0
5435
-
'@types/shimmer': 1.2.0
5436
-
import-in-the-middle: 1.11.3
5437
-
require-in-the-middle: 7.4.0
5438
-
semver: 7.6.3
5439
-
shimmer: 1.2.1
5440
-
transitivePeerDependencies:
5441
-
- supports-color
5442
-
5443
-
'@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0)':
5444
-
dependencies:
5445
-
'@opentelemetry/api': 1.9.0
5446
-
'@opentelemetry/api-logs': 0.54.2
5447
-
'@types/shimmer': 1.2.0
5448
-
import-in-the-middle: 1.11.3
5449
-
require-in-the-middle: 7.4.0
5450
-
semver: 7.6.3
5451
-
shimmer: 1.2.1
5452
-
transitivePeerDependencies:
5453
-
- supports-color
5454
-
5455
-
'@opentelemetry/redis-common@0.36.2': {}
5456
-
5457
-
'@opentelemetry/resources@1.29.0(@opentelemetry/api@1.9.0)':
5458
-
dependencies:
5459
-
'@opentelemetry/api': 1.9.0
5460
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5461
-
'@opentelemetry/semantic-conventions': 1.28.0
5462
-
5463
-
'@opentelemetry/sdk-trace-base@1.29.0(@opentelemetry/api@1.9.0)':
5464
-
dependencies:
5465
-
'@opentelemetry/api': 1.9.0
5466
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5467
-
'@opentelemetry/resources': 1.29.0(@opentelemetry/api@1.9.0)
5468
-
'@opentelemetry/semantic-conventions': 1.28.0
5469
-
5470
-
'@opentelemetry/semantic-conventions@1.27.0': {}
5471
-
5472
-
'@opentelemetry/semantic-conventions@1.28.0': {}
5473
-
5474
-
'@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)':
5475
-
dependencies:
5476
-
'@opentelemetry/api': 1.9.0
5477
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5478
-
5479
-
'@pkgjs/parseargs@0.11.0':
5480
-
optional: true
5481
-
5482
-
'@prisma/instrumentation@5.19.1':
5483
-
dependencies:
5484
-
'@opentelemetry/api': 1.9.0
5485
-
'@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0)
5486
-
'@opentelemetry/sdk-trace-base': 1.29.0(@opentelemetry/api@1.9.0)
5487
-
transitivePeerDependencies:
5488
-
- supports-color
5489
-
5490
-
'@radix-ui/primitive@1.1.0': {}
5491
-
5492
-
'@radix-ui/primitive@1.1.1': {}
5493
-
5494
-
'@radix-ui/react-arrow@1.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5495
-
dependencies:
5496
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5497
-
react: 19.0.0
5498
-
react-dom: 19.0.0(react@19.0.0)
5499
-
optionalDependencies:
5500
-
'@types/react': 19.0.1
5501
-
'@types/react-dom': 19.0.1
5502
-
5503
-
'@radix-ui/react-arrow@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5504
-
dependencies:
5505
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5506
-
react: 19.0.0
5507
-
react-dom: 19.0.0(react@19.0.0)
5508
-
optionalDependencies:
5509
-
'@types/react': 19.0.1
5510
-
'@types/react-dom': 19.0.1
5511
-
5512
-
'@radix-ui/react-avatar@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5513
-
dependencies:
5514
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5515
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5516
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5517
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5518
-
react: 19.0.0
5519
-
react-dom: 19.0.0(react@19.0.0)
5520
-
optionalDependencies:
5521
-
'@types/react': 19.0.1
5522
-
'@types/react-dom': 19.0.1
5523
-
5524
-
'@radix-ui/react-collapsible@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5525
-
dependencies:
5526
-
'@radix-ui/primitive': 1.1.0
5527
-
'@radix-ui/react-compose-refs': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5528
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5529
-
'@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5530
-
'@radix-ui/react-presence': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5531
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5532
-
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5533
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5534
-
react: 19.0.0
5535
-
react-dom: 19.0.0(react@19.0.0)
5536
-
optionalDependencies:
5537
-
'@types/react': 19.0.1
5538
-
'@types/react-dom': 19.0.1
5539
-
5540
-
'@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5541
-
dependencies:
5542
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5543
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5544
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5545
-
'@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5546
-
react: 19.0.0
5547
-
react-dom: 19.0.0(react@19.0.0)
5548
-
optionalDependencies:
5549
-
'@types/react': 19.0.1
5550
-
'@types/react-dom': 19.0.1
5551
-
5552
-
'@radix-ui/react-compose-refs@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5553
-
dependencies:
5554
-
react: 19.0.0
5555
-
optionalDependencies:
5556
-
'@types/react': 19.0.1
5557
-
5558
-
'@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.1)(react@19.0.0)':
5559
-
dependencies:
5560
-
react: 19.0.0
5561
-
optionalDependencies:
5562
-
'@types/react': 19.0.1
5563
-
5564
-
'@radix-ui/react-context@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5565
-
dependencies:
5566
-
react: 19.0.0
5567
-
optionalDependencies:
5568
-
'@types/react': 19.0.1
5569
-
5570
-
'@radix-ui/react-context@1.1.1(@types/react@19.0.1)(react@19.0.0)':
5571
-
dependencies:
5572
-
react: 19.0.0
5573
-
optionalDependencies:
5574
-
'@types/react': 19.0.1
5575
-
5576
-
'@radix-ui/react-dialog@1.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5577
-
dependencies:
5578
-
'@radix-ui/primitive': 1.1.1
5579
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5580
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5581
-
'@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5582
-
'@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5583
-
'@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5584
-
'@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5585
-
'@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5586
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5587
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5588
-
'@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5589
-
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5590
-
aria-hidden: 1.2.4
5591
-
react: 19.0.0
5592
-
react-dom: 19.0.0(react@19.0.0)
5593
-
react-remove-scroll: 2.6.2(@types/react@19.0.1)(react@19.0.0)
5594
-
optionalDependencies:
5595
-
'@types/react': 19.0.1
5596
-
'@types/react-dom': 19.0.1
5597
-
5598
-
'@radix-ui/react-direction@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5599
-
dependencies:
5600
-
react: 19.0.0
5601
-
optionalDependencies:
5602
-
'@types/react': 19.0.1
5603
-
5604
-
'@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5605
-
dependencies:
5606
-
'@radix-ui/primitive': 1.1.0
5607
-
'@radix-ui/react-compose-refs': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5608
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5609
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5610
-
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5611
-
react: 19.0.0
5612
-
react-dom: 19.0.0(react@19.0.0)
5613
-
optionalDependencies:
5614
-
'@types/react': 19.0.1
5615
-
'@types/react-dom': 19.0.1
5616
-
5617
-
'@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5618
-
dependencies:
5619
-
'@radix-ui/primitive': 1.1.1
5620
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5621
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5622
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5623
-
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5624
-
react: 19.0.0
5625
-
react-dom: 19.0.0(react@19.0.0)
5626
-
optionalDependencies:
5627
-
'@types/react': 19.0.1
5628
-
'@types/react-dom': 19.0.1
5629
-
5630
-
'@radix-ui/react-dropdown-menu@2.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5631
-
dependencies:
5632
-
'@radix-ui/primitive': 1.1.1
5633
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5634
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5635
-
'@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5636
-
'@radix-ui/react-menu': 2.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5637
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5638
-
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5639
-
react: 19.0.0
5640
-
react-dom: 19.0.0(react@19.0.0)
5641
-
optionalDependencies:
5642
-
'@types/react': 19.0.1
5643
-
'@types/react-dom': 19.0.1
5644
-
5645
-
'@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.1)(react@19.0.0)':
5646
-
dependencies:
5647
-
react: 19.0.0
5648
-
optionalDependencies:
5649
-
'@types/react': 19.0.1
5650
-
5651
-
'@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5652
-
dependencies:
5653
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5654
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5655
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5656
-
react: 19.0.0
5657
-
react-dom: 19.0.0(react@19.0.0)
5658
-
optionalDependencies:
5659
-
'@types/react': 19.0.1
5660
-
'@types/react-dom': 19.0.1
5661
-
5662
-
'@radix-ui/react-icons@1.3.2(react@19.0.0)':
5663
-
dependencies:
5664
-
react: 19.0.0
5665
-
5666
-
'@radix-ui/react-id@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5667
-
dependencies:
5668
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5669
-
react: 19.0.0
5670
-
optionalDependencies:
5671
-
'@types/react': 19.0.1
5672
-
5673
-
'@radix-ui/react-label@2.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5674
-
dependencies:
5675
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5676
-
react: 19.0.0
5677
-
react-dom: 19.0.0(react@19.0.0)
5678
-
optionalDependencies:
5679
-
'@types/react': 19.0.1
5680
-
'@types/react-dom': 19.0.1
5681
-
5682
-
'@radix-ui/react-menu@2.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5683
-
dependencies:
5684
-
'@radix-ui/primitive': 1.1.1
5685
-
'@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5686
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5687
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5688
-
'@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5689
-
'@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5690
-
'@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5691
-
'@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5692
-
'@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5693
-
'@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5694
-
'@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5695
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5696
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5697
-
'@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5698
-
'@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5699
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5700
-
aria-hidden: 1.2.4
5701
-
react: 19.0.0
5702
-
react-dom: 19.0.0(react@19.0.0)
5703
-
react-remove-scroll: 2.6.2(@types/react@19.0.1)(react@19.0.0)
5704
-
optionalDependencies:
5705
-
'@types/react': 19.0.1
5706
-
'@types/react-dom': 19.0.1
5707
-
5708
-
'@radix-ui/react-popper@1.2.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5709
-
dependencies:
5710
-
'@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5711
-
'@radix-ui/react-arrow': 1.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5712
-
'@radix-ui/react-compose-refs': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5713
-
'@radix-ui/react-context': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5714
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5715
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5716
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5717
-
'@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5718
-
'@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5719
-
'@radix-ui/rect': 1.1.0
5720
-
react: 19.0.0
5721
-
react-dom: 19.0.0(react@19.0.0)
5722
-
optionalDependencies:
5723
-
'@types/react': 19.0.1
5724
-
'@types/react-dom': 19.0.1
5725
-
5726
-
'@radix-ui/react-popper@1.2.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5727
-
dependencies:
5728
-
'@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5729
-
'@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5730
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5731
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5732
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5733
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5734
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5735
-
'@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5736
-
'@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5737
-
'@radix-ui/rect': 1.1.0
5738
-
react: 19.0.0
5739
-
react-dom: 19.0.0(react@19.0.0)
5740
-
optionalDependencies:
5741
-
'@types/react': 19.0.1
5742
-
'@types/react-dom': 19.0.1
5743
-
5744
-
'@radix-ui/react-portal@1.1.2(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5745
-
dependencies:
5746
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5747
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5748
-
react: 19.0.0
5749
-
react-dom: 19.0.0(react@19.0.0)
5750
-
optionalDependencies:
5751
-
'@types/react': 19.0.1
5752
-
'@types/react-dom': 19.0.1
5753
-
5754
-
'@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5755
-
dependencies:
5756
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5757
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5758
-
react: 19.0.0
5759
-
react-dom: 19.0.0(react@19.0.0)
5760
-
optionalDependencies:
5761
-
'@types/react': 19.0.1
5762
-
'@types/react-dom': 19.0.1
5763
-
5764
-
'@radix-ui/react-presence@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5765
-
dependencies:
5766
-
'@radix-ui/react-compose-refs': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5767
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5768
-
react: 19.0.0
5769
-
react-dom: 19.0.0(react@19.0.0)
5770
-
optionalDependencies:
5771
-
'@types/react': 19.0.1
5772
-
'@types/react-dom': 19.0.1
5773
-
5774
-
'@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5775
-
dependencies:
5776
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5777
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5778
-
react: 19.0.0
5779
-
react-dom: 19.0.0(react@19.0.0)
5780
-
optionalDependencies:
5781
-
'@types/react': 19.0.1
5782
-
'@types/react-dom': 19.0.1
5783
-
5784
-
'@radix-ui/react-primitive@2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5785
-
dependencies:
5786
-
'@radix-ui/react-slot': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5787
-
react: 19.0.0
5788
-
react-dom: 19.0.0(react@19.0.0)
5789
-
optionalDependencies:
5790
-
'@types/react': 19.0.1
5791
-
'@types/react-dom': 19.0.1
5792
-
5793
-
'@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5794
-
dependencies:
5795
-
'@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5796
-
react: 19.0.0
5797
-
react-dom: 19.0.0(react@19.0.0)
5798
-
optionalDependencies:
5799
-
'@types/react': 19.0.1
5800
-
'@types/react-dom': 19.0.1
5801
-
5802
-
'@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5803
-
dependencies:
5804
-
'@radix-ui/primitive': 1.1.1
5805
-
'@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5806
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5807
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5808
-
'@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5809
-
'@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5810
-
'@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5811
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5812
-
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5813
-
react: 19.0.0
5814
-
react-dom: 19.0.0(react@19.0.0)
5815
-
optionalDependencies:
5816
-
'@types/react': 19.0.1
5817
-
'@types/react-dom': 19.0.1
5818
-
5819
-
'@radix-ui/react-separator@1.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5820
-
dependencies:
5821
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5822
-
react: 19.0.0
5823
-
react-dom: 19.0.0(react@19.0.0)
5824
-
optionalDependencies:
5825
-
'@types/react': 19.0.1
5826
-
'@types/react-dom': 19.0.1
5827
-
5828
-
'@radix-ui/react-slot@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5829
-
dependencies:
5830
-
'@radix-ui/react-compose-refs': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5831
-
react: 19.0.0
5832
-
optionalDependencies:
5833
-
'@types/react': 19.0.1
5834
-
5835
-
'@radix-ui/react-slot@1.1.1(@types/react@19.0.1)(react@19.0.0)':
5836
-
dependencies:
5837
-
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5838
-
react: 19.0.0
5839
-
optionalDependencies:
5840
-
'@types/react': 19.0.1
5841
-
5842
-
'@radix-ui/react-tooltip@1.1.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5843
-
dependencies:
5844
-
'@radix-ui/primitive': 1.1.0
5845
-
'@radix-ui/react-compose-refs': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5846
-
'@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0)
5847
-
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5848
-
'@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5849
-
'@radix-ui/react-popper': 1.2.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5850
-
'@radix-ui/react-portal': 1.1.2(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5851
-
'@radix-ui/react-presence': 1.1.1(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5852
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5853
-
'@radix-ui/react-slot': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5854
-
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5855
-
'@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5856
-
react: 19.0.0
5857
-
react-dom: 19.0.0(react@19.0.0)
5858
-
optionalDependencies:
5859
-
'@types/react': 19.0.1
5860
-
'@types/react-dom': 19.0.1
5861
-
5862
-
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5863
-
dependencies:
5864
-
react: 19.0.0
5865
-
optionalDependencies:
5866
-
'@types/react': 19.0.1
5867
-
5868
-
'@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5869
-
dependencies:
5870
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5871
-
react: 19.0.0
5872
-
optionalDependencies:
5873
-
'@types/react': 19.0.1
5874
-
5875
-
'@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5876
-
dependencies:
5877
-
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5878
-
react: 19.0.0
5879
-
optionalDependencies:
5880
-
'@types/react': 19.0.1
5881
-
5882
-
'@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5883
-
dependencies:
5884
-
react: 19.0.0
5885
-
optionalDependencies:
5886
-
'@types/react': 19.0.1
5887
-
5888
-
'@radix-ui/react-use-rect@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5889
-
dependencies:
5890
-
'@radix-ui/rect': 1.1.0
5891
-
react: 19.0.0
5892
-
optionalDependencies:
5893
-
'@types/react': 19.0.1
5894
-
5895
-
'@radix-ui/react-use-size@1.1.0(@types/react@19.0.1)(react@19.0.0)':
5896
-
dependencies:
5897
-
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0)
5898
-
react: 19.0.0
5899
-
optionalDependencies:
5900
-
'@types/react': 19.0.1
5901
-
5902
-
'@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
5903
-
dependencies:
5904
-
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
5905
-
react: 19.0.0
5906
-
react-dom: 19.0.0(react@19.0.0)
5907
-
optionalDependencies:
5908
-
'@types/react': 19.0.1
5909
-
'@types/react-dom': 19.0.1
5910
-
5911
-
'@radix-ui/rect@1.1.0': {}
5912
-
5913
-
'@rollup/rollup-android-arm-eabi@4.28.0':
5914
-
optional: true
5915
-
5916
-
'@rollup/rollup-android-arm64@4.28.0':
5917
-
optional: true
5918
-
5919
-
'@rollup/rollup-darwin-arm64@4.28.0':
5920
-
optional: true
5921
-
5922
-
'@rollup/rollup-darwin-x64@4.28.0':
5923
-
optional: true
5924
-
5925
-
'@rollup/rollup-freebsd-arm64@4.28.0':
5926
-
optional: true
5927
-
5928
-
'@rollup/rollup-freebsd-x64@4.28.0':
5929
-
optional: true
5930
-
5931
-
'@rollup/rollup-linux-arm-gnueabihf@4.28.0':
5932
-
optional: true
5933
-
5934
-
'@rollup/rollup-linux-arm-musleabihf@4.28.0':
5935
-
optional: true
5936
-
5937
-
'@rollup/rollup-linux-arm64-gnu@4.28.0':
5938
-
optional: true
5939
-
5940
-
'@rollup/rollup-linux-arm64-musl@4.28.0':
5941
-
optional: true
5942
-
5943
-
'@rollup/rollup-linux-powerpc64le-gnu@4.28.0':
5944
-
optional: true
5945
-
5946
-
'@rollup/rollup-linux-riscv64-gnu@4.28.0':
5947
-
optional: true
5948
-
5949
-
'@rollup/rollup-linux-s390x-gnu@4.28.0':
5950
-
optional: true
5951
-
5952
-
'@rollup/rollup-linux-x64-gnu@4.28.0':
5953
-
optional: true
5954
-
5955
-
'@rollup/rollup-linux-x64-musl@4.28.0':
5956
-
optional: true
5957
-
5958
-
'@rollup/rollup-win32-arm64-msvc@4.28.0':
5959
-
optional: true
5960
-
5961
-
'@rollup/rollup-win32-ia32-msvc@4.28.0':
5962
-
optional: true
5963
-
5964
-
'@rollup/rollup-win32-x64-msvc@4.28.0':
5965
-
optional: true
5966
-
5967
-
'@sentry/core@8.42.0': {}
5968
-
5969
-
'@sentry/node@8.42.0':
5970
-
dependencies:
5971
-
'@opentelemetry/api': 1.9.0
5972
-
'@opentelemetry/context-async-hooks': 1.29.0(@opentelemetry/api@1.9.0)
5973
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
5974
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
5975
-
'@opentelemetry/instrumentation-amqplib': 0.43.0(@opentelemetry/api@1.9.0)
5976
-
'@opentelemetry/instrumentation-connect': 0.40.0(@opentelemetry/api@1.9.0)
5977
-
'@opentelemetry/instrumentation-dataloader': 0.12.0(@opentelemetry/api@1.9.0)
5978
-
'@opentelemetry/instrumentation-express': 0.44.0(@opentelemetry/api@1.9.0)
5979
-
'@opentelemetry/instrumentation-fastify': 0.41.0(@opentelemetry/api@1.9.0)
5980
-
'@opentelemetry/instrumentation-fs': 0.16.0(@opentelemetry/api@1.9.0)
5981
-
'@opentelemetry/instrumentation-generic-pool': 0.39.0(@opentelemetry/api@1.9.0)
5982
-
'@opentelemetry/instrumentation-graphql': 0.44.0(@opentelemetry/api@1.9.0)
5983
-
'@opentelemetry/instrumentation-hapi': 0.41.0(@opentelemetry/api@1.9.0)
5984
-
'@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0)
5985
-
'@opentelemetry/instrumentation-ioredis': 0.43.0(@opentelemetry/api@1.9.0)
5986
-
'@opentelemetry/instrumentation-kafkajs': 0.4.0(@opentelemetry/api@1.9.0)
5987
-
'@opentelemetry/instrumentation-knex': 0.41.0(@opentelemetry/api@1.9.0)
5988
-
'@opentelemetry/instrumentation-koa': 0.43.0(@opentelemetry/api@1.9.0)
5989
-
'@opentelemetry/instrumentation-lru-memoizer': 0.40.0(@opentelemetry/api@1.9.0)
5990
-
'@opentelemetry/instrumentation-mongodb': 0.48.0(@opentelemetry/api@1.9.0)
5991
-
'@opentelemetry/instrumentation-mongoose': 0.42.0(@opentelemetry/api@1.9.0)
5992
-
'@opentelemetry/instrumentation-mysql': 0.41.0(@opentelemetry/api@1.9.0)
5993
-
'@opentelemetry/instrumentation-mysql2': 0.41.0(@opentelemetry/api@1.9.0)
5994
-
'@opentelemetry/instrumentation-nestjs-core': 0.40.0(@opentelemetry/api@1.9.0)
5995
-
'@opentelemetry/instrumentation-pg': 0.44.0(@opentelemetry/api@1.9.0)
5996
-
'@opentelemetry/instrumentation-redis-4': 0.42.0(@opentelemetry/api@1.9.0)
5997
-
'@opentelemetry/instrumentation-tedious': 0.15.0(@opentelemetry/api@1.9.0)
5998
-
'@opentelemetry/instrumentation-undici': 0.6.0(@opentelemetry/api@1.9.0)
5999
-
'@opentelemetry/resources': 1.29.0(@opentelemetry/api@1.9.0)
6000
-
'@opentelemetry/sdk-trace-base': 1.29.0(@opentelemetry/api@1.9.0)
6001
-
'@opentelemetry/semantic-conventions': 1.28.0
6002
-
'@prisma/instrumentation': 5.19.1
6003
-
'@sentry/core': 8.42.0
6004
-
'@sentry/opentelemetry': 8.42.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.29.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.29.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.28.0)
6005
-
import-in-the-middle: 1.11.3
6006
-
transitivePeerDependencies:
6007
-
- supports-color
6008
-
6009
-
'@sentry/opentelemetry@8.42.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.29.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.29.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.28.0)':
6010
-
dependencies:
6011
-
'@opentelemetry/api': 1.9.0
6012
-
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
6013
-
'@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0)
6014
-
'@opentelemetry/sdk-trace-base': 1.29.0(@opentelemetry/api@1.9.0)
6015
-
'@opentelemetry/semantic-conventions': 1.28.0
6016
-
'@sentry/core': 8.42.0
6017
-
6018
-
'@skyware/jetstream@0.2.1(@atcute/client@2.0.6)':
6019
-
dependencies:
6020
-
'@atcute/bluesky': 1.0.9(@atcute/client@2.0.6)
6021
-
partysocket: 1.0.2
6022
-
transitivePeerDependencies:
6023
-
- '@atcute/client'
6024
-
6025
-
'@swc/core-darwin-arm64@1.9.3':
6026
-
optional: true
6027
-
6028
-
'@swc/core-darwin-x64@1.9.3':
6029
-
optional: true
6030
-
6031
-
'@swc/core-linux-arm-gnueabihf@1.9.3':
6032
-
optional: true
6033
-
6034
-
'@swc/core-linux-arm64-gnu@1.9.3':
6035
-
optional: true
6036
-
6037
-
'@swc/core-linux-arm64-musl@1.9.3':
6038
-
optional: true
6039
-
6040
-
'@swc/core-linux-x64-gnu@1.9.3':
6041
-
optional: true
6042
-
6043
-
'@swc/core-linux-x64-musl@1.9.3':
6044
-
optional: true
6045
-
6046
-
'@swc/core-win32-arm64-msvc@1.9.3':
6047
-
optional: true
6048
-
6049
-
'@swc/core-win32-ia32-msvc@1.9.3':
6050
-
optional: true
6051
-
6052
-
'@swc/core-win32-x64-msvc@1.9.3':
6053
-
optional: true
6054
-
6055
-
'@swc/core@1.9.3':
6056
-
dependencies:
6057
-
'@swc/counter': 0.1.3
6058
-
'@swc/types': 0.1.17
6059
-
optionalDependencies:
6060
-
'@swc/core-darwin-arm64': 1.9.3
6061
-
'@swc/core-darwin-x64': 1.9.3
6062
-
'@swc/core-linux-arm-gnueabihf': 1.9.3
6063
-
'@swc/core-linux-arm64-gnu': 1.9.3
6064
-
'@swc/core-linux-arm64-musl': 1.9.3
6065
-
'@swc/core-linux-x64-gnu': 1.9.3
6066
-
'@swc/core-linux-x64-musl': 1.9.3
6067
-
'@swc/core-win32-arm64-msvc': 1.9.3
6068
-
'@swc/core-win32-ia32-msvc': 1.9.3
6069
-
'@swc/core-win32-x64-msvc': 1.9.3
6070
-
6071
-
'@swc/counter@0.1.3': {}
6072
-
6073
-
'@swc/types@0.1.17':
6074
-
dependencies:
6075
-
'@swc/counter': 0.1.3
6076
-
6077
-
'@tanstack/eslint-plugin-query@5.62.1(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)':
6078
-
dependencies:
6079
-
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
6080
-
eslint: 9.16.0(jiti@2.4.1)
6081
-
transitivePeerDependencies:
6082
-
- supports-color
6083
-
- typescript
6084
-
6085
-
'@tanstack/history@1.90.0': {}
6086
-
6087
-
'@tanstack/query-core@5.62.2': {}
6088
-
6089
-
'@tanstack/query-devtools@5.61.4': {}
6090
-
6091
-
'@tanstack/react-query-devtools@5.62.2(@tanstack/react-query@5.62.2(react@19.0.0))(react@19.0.0)':
6092
-
dependencies:
6093
-
'@tanstack/query-devtools': 5.61.4
6094
-
'@tanstack/react-query': 5.62.2(react@19.0.0)
6095
-
react: 19.0.0
6096
-
6097
-
'@tanstack/react-query@5.62.2(react@19.0.0)':
6098
-
dependencies:
6099
-
'@tanstack/query-core': 5.62.2
6100
-
react: 19.0.0
6101
-
6102
-
'@tanstack/react-router@1.91.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
6103
-
dependencies:
6104
-
'@tanstack/history': 1.90.0
6105
-
'@tanstack/react-store': 0.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
6106
-
jsesc: 3.0.2
6107
-
react: 19.0.0
6108
-
react-dom: 19.0.0(react@19.0.0)
6109
-
tiny-invariant: 1.3.3
6110
-
tiny-warning: 1.0.3
6111
-
6112
-
'@tanstack/react-store@0.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
6113
-
dependencies:
6114
-
'@tanstack/store': 0.6.0
6115
-
react: 19.0.0
6116
-
react-dom: 19.0.0(react@19.0.0)
6117
-
use-sync-external-store: 1.2.2(react@19.0.0)
6118
-
6119
-
'@tanstack/router-devtools@1.85.5(@tanstack/react-router@1.91.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
6120
-
dependencies:
6121
-
'@tanstack/react-router': 1.91.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
6122
-
clsx: 2.1.1
6123
-
goober: 2.1.16(csstype@3.1.3)
6124
-
react: 19.0.0
6125
-
react-dom: 19.0.0(react@19.0.0)
6126
-
transitivePeerDependencies:
6127
-
- csstype
6128
-
6129
-
'@tanstack/router-generator@1.85.3':
6130
-
dependencies:
6131
-
'@tanstack/virtual-file-routes': 1.81.9
6132
-
prettier: 3.4.1
6133
-
tsx: 4.19.2
6134
-
zod: 3.23.8
6135
-
6136
-
'@tanstack/router-plugin@1.85.3(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1))':
6137
-
dependencies:
6138
-
'@babel/core': 7.26.0
6139
-
'@babel/generator': 7.26.2
6140
-
'@babel/parser': 7.26.2
6141
-
'@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
6142
-
'@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
6143
-
'@babel/template': 7.25.9
6144
-
'@babel/traverse': 7.25.9
6145
-
'@babel/types': 7.26.0
6146
-
'@tanstack/router-generator': 1.85.3
6147
-
'@tanstack/virtual-file-routes': 1.81.9
6148
-
'@types/babel__core': 7.20.5
6149
-
'@types/babel__generator': 7.6.8
6150
-
'@types/babel__template': 7.4.4
6151
-
'@types/babel__traverse': 7.20.6
6152
-
babel-dead-code-elimination: 1.0.6
6153
-
chokidar: 3.6.0
6154
-
unplugin: 1.16.0
6155
-
zod: 3.23.8
6156
-
optionalDependencies:
6157
-
vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1)
6158
-
transitivePeerDependencies:
6159
-
- supports-color
6160
-
6161
-
'@tanstack/store@0.6.0': {}
6162
-
6163
-
'@tanstack/virtual-file-routes@1.81.9': {}
6164
-
6165
-
'@trysound/sax@0.2.0': {}
6166
-
6167
-
'@tsconfig/node10@1.0.11': {}
6168
-
6169
-
'@tsconfig/node12@1.0.11': {}
6170
-
6171
-
'@tsconfig/node14@1.0.3': {}
6172
-
6173
-
'@tsconfig/node16@1.0.4': {}
6174
-
6175
-
'@types/babel__core@7.20.5':
6176
-
dependencies:
6177
-
'@babel/parser': 7.26.2
6178
-
'@babel/types': 7.26.0
6179
-
'@types/babel__generator': 7.6.8
6180
-
'@types/babel__template': 7.4.4
6181
-
'@types/babel__traverse': 7.20.6
6182
-
6183
-
'@types/babel__generator@7.6.8':
6184
-
dependencies:
6185
-
'@babel/types': 7.26.0
6186
-
6187
-
'@types/babel__template@7.4.4':
6188
-
dependencies:
6189
-
'@babel/parser': 7.26.2
6190
-
'@babel/types': 7.26.0
6191
-
6192
-
'@types/babel__traverse@7.20.6':
6193
-
dependencies:
6194
-
'@babel/types': 7.26.0
6195
-
6196
-
'@types/connect@3.4.36':
6197
-
dependencies:
6198
-
'@types/node': 22.10.1
6199
-
6200
-
'@types/estree@1.0.6': {}
6201
-
6202
-
'@types/json-schema@7.0.15': {}
6203
-
6204
-
'@types/mysql@2.15.26':
6205
-
dependencies:
6206
-
'@types/node': 22.10.1
6207
-
6208
-
'@types/node@22.10.1':
6209
-
dependencies:
6210
-
undici-types: 6.20.0
6211
-
6212
-
'@types/pg-pool@2.0.6':
6213
-
dependencies:
6214
-
'@types/pg': 8.6.1
6215
-
6216
-
'@types/pg@8.6.1':
6217
-
dependencies:
6218
-
'@types/node': 22.10.1
6219
-
pg-protocol: 1.7.0
6220
-
pg-types: 2.2.0
6221
-
6222
-
'@types/react-dom@19.0.1':
6223
-
dependencies:
6224
-
'@types/react': 19.0.1
6225
-
6226
-
'@types/react@19.0.1':
6227
-
dependencies:
6228
-
csstype: 3.1.3
6229
-
6230
-
'@types/shimmer@1.2.0': {}
6231
-
6232
-
'@types/tedious@4.0.14':
6233
-
dependencies:
6234
-
'@types/node': 22.10.1
6235
-
6236
-
'@types/ws@8.5.13':
6237
-
dependencies:
6238
-
'@types/node': 22.10.1
6239
-
6240
-
'@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)':
6241
-
dependencies:
6242
-
'@eslint-community/regexpp': 4.12.1
6243
-
'@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
6244
-
'@typescript-eslint/scope-manager': 8.17.0
6245
-
'@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
6246
-
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
6247
-
'@typescript-eslint/visitor-keys': 8.17.0
6248
-
eslint: 9.16.0(jiti@2.4.1)
6249
-
graphemer: 1.4.0
6250
-
ignore: 5.3.2
6251
-
natural-compare: 1.4.0
6252
-
ts-api-utils: 1.4.3(typescript@5.6.3)
6253
-
optionalDependencies:
6254
-
typescript: 5.6.3
6255
-
transitivePeerDependencies:
6256
-
- supports-color
6257
-
6258
-
'@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)':
6259
-
dependencies:
6260
-
'@typescript-eslint/scope-manager': 8.17.0
6261
-
'@typescript-eslint/types': 8.17.0
6262
-
'@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3)
6263
-
'@typescript-eslint/visitor-keys': 8.17.0
6264
-
debug: 4.3.7
6265
-
eslint: 9.16.0(jiti@2.4.1)
6266
-
optionalDependencies:
6267
-
typescript: 5.6.3
6268
-
transitivePeerDependencies:
6269
-
- supports-color
6270
-
6271
-
'@typescript-eslint/scope-manager@8.17.0':
6272
-
dependencies:
6273
-
'@typescript-eslint/types': 8.17.0
6274
-
'@typescript-eslint/visitor-keys': 8.17.0
6275
-
6276
-
'@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)':
6277
-
dependencies:
6278
-
'@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3)
6279
-
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
6280
-
debug: 4.3.7
6281
-
eslint: 9.16.0(jiti@2.4.1)
6282
-
ts-api-utils: 1.4.3(typescript@5.6.3)
6283
-
optionalDependencies:
6284
-
typescript: 5.6.3
6285
-
transitivePeerDependencies:
6286
-
- supports-color
6287
-
6288
-
'@typescript-eslint/types@8.17.0': {}
6289
-
6290
-
'@typescript-eslint/typescript-estree@8.17.0(typescript@5.6.3)':
6291
-
dependencies:
6292
-
'@typescript-eslint/types': 8.17.0
6293
-
'@typescript-eslint/visitor-keys': 8.17.0
6294
-
debug: 4.3.7
6295
-
fast-glob: 3.3.2
6296
-
is-glob: 4.0.3
6297
-
minimatch: 9.0.5
6298
-
semver: 7.6.3
6299
-
ts-api-utils: 1.4.3(typescript@5.6.3)
6300
-
optionalDependencies:
6301
-
typescript: 5.6.3
6302
-
transitivePeerDependencies:
6303
-
- supports-color
6304
-
6305
-
'@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)':
6306
-
dependencies:
6307
-
'@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.1))
6308
-
'@typescript-eslint/scope-manager': 8.17.0
6309
-
'@typescript-eslint/types': 8.17.0
6310
-
'@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3)
6311
-
eslint: 9.16.0(jiti@2.4.1)
6312
-
optionalDependencies:
6313
-
typescript: 5.6.3
6314
-
transitivePeerDependencies:
6315
-
- supports-color
6316
-
6317
-
'@typescript-eslint/visitor-keys@8.17.0':
6318
-
dependencies:
6319
-
'@typescript-eslint/types': 8.17.0
6320
-
eslint-visitor-keys: 4.2.0
6321
-
6322
-
'@vitejs/plugin-react-swc@3.7.2(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1))':
6323
-
dependencies:
6324
-
'@swc/core': 1.9.3
6325
-
vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1)
6326
-
transitivePeerDependencies:
6327
-
- '@swc/helpers'
6328
-
6329
-
abort-controller@3.0.0:
6330
-
dependencies:
6331
-
event-target-shim: 5.0.1
6332
-
6333
-
acorn-import-attributes@1.9.5(acorn@8.14.0):
6334
-
dependencies:
6335
-
acorn: 8.14.0
6336
-
6337
-
acorn-jsx@5.3.2(acorn@8.14.0):
6338
-
dependencies:
6339
-
acorn: 8.14.0
6340
-
6341
-
acorn-walk@8.3.4:
6342
-
dependencies:
6343
-
acorn: 8.14.0
6344
-
6345
-
acorn@8.14.0: {}
6346
-
6347
-
ajv@6.12.6:
6348
-
dependencies:
6349
-
fast-deep-equal: 3.1.3
6350
-
fast-json-stable-stringify: 2.1.0
6351
-
json-schema-traverse: 0.4.1
6352
-
uri-js: 4.4.1
6353
-
6354
-
ansi-regex@5.0.1: {}
6355
-
6356
-
ansi-regex@6.1.0: {}
6357
-
6358
-
ansi-styles@4.3.0:
6359
-
dependencies:
6360
-
color-convert: 2.0.1
6361
-
6362
-
ansi-styles@6.2.1: {}
6363
-
6364
-
any-promise@1.3.0: {}
6365
-
6366
-
anymatch@3.1.3:
6367
-
dependencies:
6368
-
normalize-path: 3.0.0
6369
-
picomatch: 2.3.1
6370
-
6371
-
arg@4.1.3: {}
6372
-
6373
-
arg@5.0.2: {}
6374
-
6375
-
argparse@2.0.1: {}
6376
-
6377
-
aria-hidden@1.2.4:
6378
-
dependencies:
6379
-
tslib: 2.8.1
6380
-
6381
-
asynckit@0.4.0: {}
6382
-
6383
-
atomic-sleep@1.0.0: {}
6384
-
6385
-
autoprefixer@10.4.20(postcss@8.4.49):
6386
-
dependencies:
6387
-
browserslist: 4.24.2
6388
-
caniuse-lite: 1.0.30001686
6389
-
fraction.js: 4.3.7
6390
-
normalize-range: 0.1.2
6391
-
picocolors: 1.1.1
6392
-
postcss: 8.4.49
6393
-
postcss-value-parser: 4.2.0
6394
-
6395
-
await-lock@2.2.2: {}
6396
-
6397
-
axios@1.7.9:
6398
-
dependencies:
6399
-
follow-redirects: 1.15.9
6400
-
form-data: 4.0.1
6401
-
proxy-from-env: 1.1.0
6402
-
transitivePeerDependencies:
6403
-
- debug
6404
-
6405
-
babel-dead-code-elimination@1.0.6:
6406
-
dependencies:
6407
-
'@babel/core': 7.26.0
6408
-
'@babel/parser': 7.26.2
6409
-
'@babel/traverse': 7.25.9
6410
-
'@babel/types': 7.26.0
6411
-
transitivePeerDependencies:
6412
-
- supports-color
6413
-
6414
-
balanced-match@1.0.2: {}
6415
-
6416
-
base64-js@1.5.1: {}
6417
-
6418
-
binary-extensions@2.3.0: {}
6419
-
6420
-
boolbase@1.0.0: {}
6421
-
6422
-
brace-expansion@1.1.11:
6423
-
dependencies:
6424
-
balanced-match: 1.0.2
6425
-
concat-map: 0.0.1
6426
-
6427
-
brace-expansion@2.0.1:
6428
-
dependencies:
6429
-
balanced-match: 1.0.2
6430
-
6431
-
braces@3.0.3:
6432
-
dependencies:
6433
-
fill-range: 7.1.1
6434
-
6435
-
browserslist@4.24.2:
6436
-
dependencies:
6437
-
caniuse-lite: 1.0.30001686
6438
-
electron-to-chromium: 1.5.68
6439
-
node-releases: 2.0.18
6440
-
update-browserslist-db: 1.1.1(browserslist@4.24.2)
6441
-
6442
-
buffer-from@1.1.2: {}
6443
-
6444
-
buffer@6.0.3:
6445
-
dependencies:
6446
-
base64-js: 1.5.1
6447
-
ieee754: 1.2.1
6448
-
6449
-
bufferutil@4.0.8:
6450
-
dependencies:
6451
-
node-gyp-build: 4.8.4
6452
-
6453
-
bundle-require@5.0.0(esbuild@0.24.0):
6454
-
dependencies:
6455
-
esbuild: 0.24.0
6456
-
load-tsconfig: 0.2.5
6457
-
6458
-
cac@6.7.14: {}
6459
-
6460
-
callsites@3.1.0: {}
6461
-
6462
-
camelcase-css@2.0.1: {}
6463
-
6464
-
caniuse-api@3.0.0:
6465
-
dependencies:
6466
-
browserslist: 4.24.2
6467
-
caniuse-lite: 1.0.30001686
6468
-
lodash.memoize: 4.1.2
6469
-
lodash.uniq: 4.5.0
6470
-
6471
-
caniuse-lite@1.0.30001686: {}
6472
-
6473
-
cbor-extract@2.2.0:
6474
-
dependencies:
6475
-
node-gyp-build-optional-packages: 5.1.1
6476
-
optionalDependencies:
6477
-
'@cbor-extract/cbor-extract-darwin-arm64': 2.2.0
6478
-
'@cbor-extract/cbor-extract-darwin-x64': 2.2.0
6479
-
'@cbor-extract/cbor-extract-linux-arm': 2.2.0
6480
-
'@cbor-extract/cbor-extract-linux-arm64': 2.2.0
6481
-
'@cbor-extract/cbor-extract-linux-x64': 2.2.0
6482
-
'@cbor-extract/cbor-extract-win32-x64': 2.2.0
6483
-
optional: true
6484
-
6485
-
cbor-x@1.6.0:
6486
-
optionalDependencies:
6487
-
cbor-extract: 2.2.0
6488
-
6489
-
cborg@1.10.2: {}
6490
-
6491
-
chalk@4.1.2:
6492
-
dependencies:
6493
-
ansi-styles: 4.3.0
6494
-
supports-color: 7.2.0
6495
-
6496
-
chokidar@3.6.0:
6497
-
dependencies:
6498
-
anymatch: 3.1.3
6499
-
braces: 3.0.3
6500
-
glob-parent: 5.1.2
6501
-
is-binary-path: 2.1.0
6502
-
is-glob: 4.0.3
6503
-
normalize-path: 3.0.0
6504
-
readdirp: 3.6.0
6505
-
optionalDependencies:
6506
-
fsevents: 2.3.3
6507
-
6508
-
chokidar@4.0.1:
6509
-
dependencies:
6510
-
readdirp: 4.0.2
6511
-
6512
-
cjs-module-lexer@1.4.1: {}
6513
-
6514
-
class-variance-authority@0.7.1:
6515
-
dependencies:
6516
-
clsx: 2.1.1
6517
-
6518
-
clsx@2.1.1: {}
6519
-
6520
-
color-convert@2.0.1:
6521
-
dependencies:
6522
-
color-name: 1.1.4
6523
-
6524
-
color-name@1.1.4: {}
6525
-
6526
-
colord@2.9.3: {}
6527
-
6528
-
colorette@2.0.20: {}
6529
-
6530
-
combined-stream@1.0.8:
6531
-
dependencies:
6532
-
delayed-stream: 1.0.0
6533
-
6534
-
commander@4.1.1: {}
6535
-
6536
-
commander@7.2.0: {}
6537
-
6538
-
concat-map@0.0.1: {}
6539
-
6540
-
consola@3.2.3: {}
6541
-
6542
-
convert-source-map@2.0.0: {}
6543
-
6544
-
create-require@1.1.1: {}
6545
-
6546
-
cross-spawn@7.0.6:
6547
-
dependencies:
6548
-
path-key: 3.1.1
6549
-
shebang-command: 2.0.0
6550
-
which: 2.0.2
6551
-
6552
-
css-declaration-sorter@7.2.0(postcss@8.4.49):
6553
-
dependencies:
6554
-
postcss: 8.4.49
6555
-
6556
-
css-select@5.1.0:
6557
-
dependencies:
6558
-
boolbase: 1.0.0
6559
-
css-what: 6.1.0
6560
-
domhandler: 5.0.3
6561
-
domutils: 3.1.0
6562
-
nth-check: 2.1.1
6563
-
6564
-
css-tree@2.2.1:
6565
-
dependencies:
6566
-
mdn-data: 2.0.28
6567
-
source-map-js: 1.2.1
6568
-
6569
-
css-tree@2.3.1:
6570
-
dependencies:
6571
-
mdn-data: 2.0.30
6572
-
source-map-js: 1.2.1
6573
-
6574
-
css-what@6.1.0: {}
6575
-
6576
-
cssesc@3.0.0: {}
6577
-
6578
-
cssnano-preset-default@7.0.6(postcss@8.4.49):
6579
-
dependencies:
6580
-
browserslist: 4.24.2
6581
-
css-declaration-sorter: 7.2.0(postcss@8.4.49)
6582
-
cssnano-utils: 5.0.0(postcss@8.4.49)
6583
-
postcss: 8.4.49
6584
-
postcss-calc: 10.0.2(postcss@8.4.49)
6585
-
postcss-colormin: 7.0.2(postcss@8.4.49)
6586
-
postcss-convert-values: 7.0.4(postcss@8.4.49)
6587
-
postcss-discard-comments: 7.0.3(postcss@8.4.49)
6588
-
postcss-discard-duplicates: 7.0.1(postcss@8.4.49)
6589
-
postcss-discard-empty: 7.0.0(postcss@8.4.49)
6590
-
postcss-discard-overridden: 7.0.0(postcss@8.4.49)
6591
-
postcss-merge-longhand: 7.0.4(postcss@8.4.49)
6592
-
postcss-merge-rules: 7.0.4(postcss@8.4.49)
6593
-
postcss-minify-font-values: 7.0.0(postcss@8.4.49)
6594
-
postcss-minify-gradients: 7.0.0(postcss@8.4.49)
6595
-
postcss-minify-params: 7.0.2(postcss@8.4.49)
6596
-
postcss-minify-selectors: 7.0.4(postcss@8.4.49)
6597
-
postcss-normalize-charset: 7.0.0(postcss@8.4.49)
6598
-
postcss-normalize-display-values: 7.0.0(postcss@8.4.49)
6599
-
postcss-normalize-positions: 7.0.0(postcss@8.4.49)
6600
-
postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49)
6601
-
postcss-normalize-string: 7.0.0(postcss@8.4.49)
6602
-
postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49)
6603
-
postcss-normalize-unicode: 7.0.2(postcss@8.4.49)
6604
-
postcss-normalize-url: 7.0.0(postcss@8.4.49)
6605
-
postcss-normalize-whitespace: 7.0.0(postcss@8.4.49)
6606
-
postcss-ordered-values: 7.0.1(postcss@8.4.49)
6607
-
postcss-reduce-initial: 7.0.2(postcss@8.4.49)
6608
-
postcss-reduce-transforms: 7.0.0(postcss@8.4.49)
6609
-
postcss-svgo: 7.0.1(postcss@8.4.49)
6610
-
postcss-unique-selectors: 7.0.3(postcss@8.4.49)
6611
-
6612
-
cssnano-utils@5.0.0(postcss@8.4.49):
6613
-
dependencies:
6614
-
postcss: 8.4.49
6615
-
6616
-
cssnano@7.0.6(postcss@8.4.49):
6617
-
dependencies:
6618
-
cssnano-preset-default: 7.0.6(postcss@8.4.49)
6619
-
lilconfig: 3.1.3
6620
-
postcss: 8.4.49
6621
-
6622
-
csso@5.0.5:
6623
-
dependencies:
6624
-
css-tree: 2.2.1
6625
-
6626
-
csstype@3.1.3: {}
6627
-
6628
-
data-uri-to-buffer@4.0.1: {}
6629
-
6630
-
dateformat@4.6.3: {}
6631
-
6632
-
debug@4.3.7:
6633
-
dependencies:
6634
-
ms: 2.1.3
6635
-
6636
-
deep-is@0.1.4: {}
6637
-
6638
-
delayed-stream@1.0.0: {}
6639
-
6640
-
detect-libc@2.0.2: {}
6641
-
6642
-
detect-node-es@1.1.0: {}
6643
-
6644
-
didyoumean@1.2.2: {}
6645
-
6646
-
diff@4.0.2: {}
6647
-
6648
-
dlv@1.1.3: {}
6649
-
6650
-
dom-serializer@2.0.0:
6651
-
dependencies:
6652
-
domelementtype: 2.3.0
6653
-
domhandler: 5.0.3
6654
-
entities: 4.5.0
6655
-
6656
-
domelementtype@2.3.0: {}
6657
-
6658
-
domhandler@5.0.3:
6659
-
dependencies:
6660
-
domelementtype: 2.3.0
6661
-
6662
-
domutils@3.1.0:
6663
-
dependencies:
6664
-
dom-serializer: 2.0.0
6665
-
domelementtype: 2.3.0
6666
-
domhandler: 5.0.3
6667
-
6668
-
drizzle-kit@0.29.0:
6669
-
dependencies:
6670
-
'@drizzle-team/brocli': 0.10.2
6671
-
'@esbuild-kit/esm-loader': 2.6.5
6672
-
esbuild: 0.19.12
6673
-
esbuild-register: 3.6.0(esbuild@0.19.12)
6674
-
transitivePeerDependencies:
6675
-
- supports-color
6676
-
6677
-
drizzle-orm@0.37.0(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(@types/react@19.0.1)(react@19.0.0):
6678
-
optionalDependencies:
6679
-
'@libsql/client': 0.14.0(bufferutil@4.0.8)
6680
-
'@opentelemetry/api': 1.9.0
6681
-
'@types/pg': 8.6.1
6682
-
'@types/react': 19.0.1
6683
-
react: 19.0.0
6684
-
6685
-
eastasianwidth@0.2.0: {}
6686
-
6687
-
electron-to-chromium@1.5.68: {}
6688
-
6689
-
emoji-regex@8.0.0: {}
6690
-
6691
-
emoji-regex@9.2.2: {}
6692
-
6693
-
end-of-stream@1.4.4:
6694
-
dependencies:
6695
-
once: 1.4.0
6696
-
6697
-
entities@4.5.0: {}
6698
-
6699
-
esbuild-register@3.6.0(esbuild@0.19.12):
6700
-
dependencies:
6701
-
debug: 4.3.7
6702
-
esbuild: 0.19.12
6703
-
transitivePeerDependencies:
6704
-
- supports-color
6705
-
6706
-
esbuild@0.18.20:
6707
-
optionalDependencies:
6708
-
'@esbuild/android-arm': 0.18.20
6709
-
'@esbuild/android-arm64': 0.18.20
6710
-
'@esbuild/android-x64': 0.18.20
6711
-
'@esbuild/darwin-arm64': 0.18.20
6712
-
'@esbuild/darwin-x64': 0.18.20
6713
-
'@esbuild/freebsd-arm64': 0.18.20
6714
-
'@esbuild/freebsd-x64': 0.18.20
6715
-
'@esbuild/linux-arm': 0.18.20
6716
-
'@esbuild/linux-arm64': 0.18.20
6717
-
'@esbuild/linux-ia32': 0.18.20
6718
-
'@esbuild/linux-loong64': 0.18.20
6719
-
'@esbuild/linux-mips64el': 0.18.20
6720
-
'@esbuild/linux-ppc64': 0.18.20
6721
-
'@esbuild/linux-riscv64': 0.18.20
6722
-
'@esbuild/linux-s390x': 0.18.20
6723
-
'@esbuild/linux-x64': 0.18.20
6724
-
'@esbuild/netbsd-x64': 0.18.20
6725
-
'@esbuild/openbsd-x64': 0.18.20
6726
-
'@esbuild/sunos-x64': 0.18.20
6727
-
'@esbuild/win32-arm64': 0.18.20
6728
-
'@esbuild/win32-ia32': 0.18.20
6729
-
'@esbuild/win32-x64': 0.18.20
6730
-
6731
-
esbuild@0.19.12:
6732
-
optionalDependencies:
6733
-
'@esbuild/aix-ppc64': 0.19.12
6734
-
'@esbuild/android-arm': 0.19.12
6735
-
'@esbuild/android-arm64': 0.19.12
6736
-
'@esbuild/android-x64': 0.19.12
6737
-
'@esbuild/darwin-arm64': 0.19.12
6738
-
'@esbuild/darwin-x64': 0.19.12
6739
-
'@esbuild/freebsd-arm64': 0.19.12
6740
-
'@esbuild/freebsd-x64': 0.19.12
6741
-
'@esbuild/linux-arm': 0.19.12
6742
-
'@esbuild/linux-arm64': 0.19.12
6743
-
'@esbuild/linux-ia32': 0.19.12
6744
-
'@esbuild/linux-loong64': 0.19.12
6745
-
'@esbuild/linux-mips64el': 0.19.12
6746
-
'@esbuild/linux-ppc64': 0.19.12
6747
-
'@esbuild/linux-riscv64': 0.19.12
6748
-
'@esbuild/linux-s390x': 0.19.12
6749
-
'@esbuild/linux-x64': 0.19.12
6750
-
'@esbuild/netbsd-x64': 0.19.12
6751
-
'@esbuild/openbsd-x64': 0.19.12
6752
-
'@esbuild/sunos-x64': 0.19.12
6753
-
'@esbuild/win32-arm64': 0.19.12
6754
-
'@esbuild/win32-ia32': 0.19.12
6755
-
'@esbuild/win32-x64': 0.19.12
6756
-
6757
-
esbuild@0.23.1:
6758
-
optionalDependencies:
6759
-
'@esbuild/aix-ppc64': 0.23.1
6760
-
'@esbuild/android-arm': 0.23.1
6761
-
'@esbuild/android-arm64': 0.23.1
6762
-
'@esbuild/android-x64': 0.23.1
6763
-
'@esbuild/darwin-arm64': 0.23.1
6764
-
'@esbuild/darwin-x64': 0.23.1
6765
-
'@esbuild/freebsd-arm64': 0.23.1
6766
-
'@esbuild/freebsd-x64': 0.23.1
6767
-
'@esbuild/linux-arm': 0.23.1
6768
-
'@esbuild/linux-arm64': 0.23.1
6769
-
'@esbuild/linux-ia32': 0.23.1
6770
-
'@esbuild/linux-loong64': 0.23.1
6771
-
'@esbuild/linux-mips64el': 0.23.1
6772
-
'@esbuild/linux-ppc64': 0.23.1
6773
-
'@esbuild/linux-riscv64': 0.23.1
6774
-
'@esbuild/linux-s390x': 0.23.1
6775
-
'@esbuild/linux-x64': 0.23.1
6776
-
'@esbuild/netbsd-x64': 0.23.1
6777
-
'@esbuild/openbsd-arm64': 0.23.1
6778
-
'@esbuild/openbsd-x64': 0.23.1
6779
-
'@esbuild/sunos-x64': 0.23.1
6780
-
'@esbuild/win32-arm64': 0.23.1
6781
-
'@esbuild/win32-ia32': 0.23.1
6782
-
'@esbuild/win32-x64': 0.23.1
6783
-
6784
-
esbuild@0.24.0:
6785
-
optionalDependencies:
6786
-
'@esbuild/aix-ppc64': 0.24.0
6787
-
'@esbuild/android-arm': 0.24.0
6788
-
'@esbuild/android-arm64': 0.24.0
6789
-
'@esbuild/android-x64': 0.24.0
6790
-
'@esbuild/darwin-arm64': 0.24.0
6791
-
'@esbuild/darwin-x64': 0.24.0
6792
-
'@esbuild/freebsd-arm64': 0.24.0
6793
-
'@esbuild/freebsd-x64': 0.24.0
6794
-
'@esbuild/linux-arm': 0.24.0
6795
-
'@esbuild/linux-arm64': 0.24.0
6796
-
'@esbuild/linux-ia32': 0.24.0
6797
-
'@esbuild/linux-loong64': 0.24.0
6798
-
'@esbuild/linux-mips64el': 0.24.0
6799
-
'@esbuild/linux-ppc64': 0.24.0
6800
-
'@esbuild/linux-riscv64': 0.24.0
6801
-
'@esbuild/linux-s390x': 0.24.0
6802
-
'@esbuild/linux-x64': 0.24.0
6803
-
'@esbuild/netbsd-x64': 0.24.0
6804
-
'@esbuild/openbsd-arm64': 0.24.0
6805
-
'@esbuild/openbsd-x64': 0.24.0
6806
-
'@esbuild/sunos-x64': 0.24.0
6807
-
'@esbuild/win32-arm64': 0.24.0
6808
-
'@esbuild/win32-ia32': 0.24.0
6809
-
'@esbuild/win32-x64': 0.24.0
6810
-
6811
-
escalade@3.2.0: {}
6812
-
6813
-
escape-string-regexp@4.0.0: {}
6814
-
6815
-
eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(jiti@2.4.1)):
6816
-
dependencies:
6817
-
eslint: 9.16.0(jiti@2.4.1)
6818
-
6819
-
eslint-plugin-react-refresh@0.4.16(eslint@9.16.0(jiti@2.4.1)):
6820
-
dependencies:
6821
-
eslint: 9.16.0(jiti@2.4.1)
6822
-
6823
-
eslint-scope@8.2.0:
6824
-
dependencies:
6825
-
esrecurse: 4.3.0
6826
-
estraverse: 5.3.0
6827
-
6828
-
eslint-visitor-keys@3.4.3: {}
6829
-
6830
-
eslint-visitor-keys@4.2.0: {}
6831
-
6832
-
eslint@9.16.0(jiti@2.4.1):
6833
-
dependencies:
6834
-
'@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.1))
6835
-
'@eslint-community/regexpp': 4.12.1
6836
-
'@eslint/config-array': 0.19.0
6837
-
'@eslint/core': 0.9.0
6838
-
'@eslint/eslintrc': 3.2.0
6839
-
'@eslint/js': 9.16.0
6840
-
'@eslint/plugin-kit': 0.2.3
6841
-
'@humanfs/node': 0.16.6
6842
-
'@humanwhocodes/module-importer': 1.0.1
6843
-
'@humanwhocodes/retry': 0.4.1
6844
-
'@types/estree': 1.0.6
6845
-
'@types/json-schema': 7.0.15
6846
-
ajv: 6.12.6
6847
-
chalk: 4.1.2
6848
-
cross-spawn: 7.0.6
6849
-
debug: 4.3.7
6850
-
escape-string-regexp: 4.0.0
6851
-
eslint-scope: 8.2.0
6852
-
eslint-visitor-keys: 4.2.0
6853
-
espree: 10.3.0
6854
-
esquery: 1.6.0
6855
-
esutils: 2.0.3
6856
-
fast-deep-equal: 3.1.3
6857
-
file-entry-cache: 8.0.0
6858
-
find-up: 5.0.0
6859
-
glob-parent: 6.0.2
6860
-
ignore: 5.3.2
6861
-
imurmurhash: 0.1.4
6862
-
is-glob: 4.0.3
6863
-
json-stable-stringify-without-jsonify: 1.0.1
6864
-
lodash.merge: 4.6.2
6865
-
minimatch: 3.1.2
6866
-
natural-compare: 1.4.0
6867
-
optionator: 0.9.4
6868
-
optionalDependencies:
6869
-
jiti: 2.4.1
6870
-
transitivePeerDependencies:
6871
-
- supports-color
6872
-
6873
-
espree@10.3.0:
6874
-
dependencies:
6875
-
acorn: 8.14.0
6876
-
acorn-jsx: 5.3.2(acorn@8.14.0)
6877
-
eslint-visitor-keys: 4.2.0
6878
-
6879
-
esquery@1.6.0:
6880
-
dependencies:
6881
-
estraverse: 5.3.0
6882
-
6883
-
esrecurse@4.3.0:
6884
-
dependencies:
6885
-
estraverse: 5.3.0
6886
-
6887
-
estraverse@5.3.0: {}
6888
-
6889
-
esutils@2.0.3: {}
6890
-
6891
-
event-target-shim@5.0.1: {}
6892
-
6893
-
event-target-shim@6.0.2: {}
6894
-
6895
-
events@3.3.0: {}
6896
-
6897
-
fast-copy@3.0.2: {}
6898
-
6899
-
fast-deep-equal@3.1.3: {}
6900
-
6901
-
fast-glob@3.3.2:
6902
-
dependencies:
6903
-
'@nodelib/fs.stat': 2.0.5
6904
-
'@nodelib/fs.walk': 1.2.8
6905
-
glob-parent: 5.1.2
6906
-
merge2: 1.4.1
6907
-
micromatch: 4.0.8
6908
-
6909
-
fast-json-stable-stringify@2.1.0: {}
6910
-
6911
-
fast-levenshtein@2.0.6: {}
6912
-
6913
-
fast-redact@3.5.0: {}
6914
-
6915
-
fast-safe-stringify@2.1.1: {}
6916
-
6917
-
fastq@1.17.1:
6918
-
dependencies:
6919
-
reusify: 1.0.4
6920
-
6921
-
fdir@6.4.2(picomatch@4.0.2):
6922
-
optionalDependencies:
6923
-
picomatch: 4.0.2
6924
-
6925
-
fetch-blob@3.2.0:
6926
-
dependencies:
6927
-
node-domexception: 1.0.0
6928
-
web-streams-polyfill: 3.3.3
6929
-
6930
-
file-entry-cache@8.0.0:
6931
-
dependencies:
6932
-
flat-cache: 4.0.1
6933
-
6934
-
fill-range@7.1.1:
6935
-
dependencies:
6936
-
to-regex-range: 5.0.1
6937
-
6938
-
find-up@5.0.0:
6939
-
dependencies:
6940
-
locate-path: 6.0.0
6941
-
path-exists: 4.0.0
6942
-
6943
-
flat-cache@4.0.1:
6944
-
dependencies:
6945
-
flatted: 3.3.2
6946
-
keyv: 4.5.4
6947
-
6948
-
flatted@3.3.2: {}
6949
-
6950
-
follow-redirects@1.15.9: {}
6951
-
6952
-
foreground-child@3.3.0:
6953
-
dependencies:
6954
-
cross-spawn: 7.0.6
6955
-
signal-exit: 4.1.0
6956
-
6957
-
form-data@4.0.1:
6958
-
dependencies:
6959
-
asynckit: 0.4.0
6960
-
combined-stream: 1.0.8
6961
-
mime-types: 2.1.35
6962
-
6963
-
formdata-polyfill@4.0.10:
6964
-
dependencies:
6965
-
fetch-blob: 3.2.0
6966
-
6967
-
fraction.js@4.3.7: {}
6968
-
6969
-
fsevents@2.3.3:
6970
-
optional: true
6971
-
6972
-
function-bind@1.1.2: {}
6973
-
6974
-
gensync@1.0.0-beta.2: {}
6975
-
6976
-
get-nonce@1.0.1: {}
6977
-
6978
-
get-tsconfig@4.8.1:
6979
-
dependencies:
6980
-
resolve-pkg-maps: 1.0.0
6981
-
6982
-
glob-parent@5.1.2:
6983
-
dependencies:
6984
-
is-glob: 4.0.3
6985
-
6986
-
glob-parent@6.0.2:
6987
-
dependencies:
6988
-
is-glob: 4.0.3
6989
-
6990
-
glob@10.4.5:
6991
-
dependencies:
6992
-
foreground-child: 3.3.0
6993
-
jackspeak: 3.4.3
6994
-
minimatch: 9.0.5
6995
-
minipass: 7.1.2
6996
-
package-json-from-dist: 1.0.1
6997
-
path-scurry: 1.11.1
6998
-
6999
-
glob@11.0.0:
7000
-
dependencies:
7001
-
foreground-child: 3.3.0
7002
-
jackspeak: 4.0.2
7003
-
minimatch: 10.0.1
7004
-
minipass: 7.1.2
7005
-
package-json-from-dist: 1.0.1
7006
-
path-scurry: 2.0.0
7007
-
7008
-
globals@11.12.0: {}
7009
-
7010
-
globals@14.0.0: {}
7011
-
7012
-
globals@15.13.0: {}
7013
-
7014
-
goober@2.1.16(csstype@3.1.3):
7015
-
dependencies:
7016
-
csstype: 3.1.3
7017
-
7018
-
graphemer@1.4.0: {}
7019
-
7020
-
has-flag@4.0.0: {}
7021
-
7022
-
hasown@2.0.2:
7023
-
dependencies:
7024
-
function-bind: 1.1.2
7025
-
7026
-
help-me@5.0.0: {}
7027
-
7028
-
hono-sessions@0.7.0:
7029
-
dependencies:
7030
-
hono: 4.6.12
7031
-
iron-webcrypto: 0.10.1
7032
-
7033
-
hono@4.6.12: {}
7034
-
7035
-
ieee754@1.2.1: {}
7036
-
7037
-
ignore@5.3.2: {}
7038
-
7039
-
import-fresh@3.3.0:
7040
-
dependencies:
7041
-
parent-module: 1.0.1
7042
-
resolve-from: 4.0.0
7043
-
7044
-
import-in-the-middle@1.11.3:
7045
-
dependencies:
7046
-
acorn: 8.14.0
7047
-
acorn-import-attributes: 1.9.5(acorn@8.14.0)
7048
-
cjs-module-lexer: 1.4.1
7049
-
module-details-from-path: 1.0.3
7050
-
7051
-
imurmurhash@0.1.4: {}
7052
-
7053
-
ipaddr.js@2.2.0: {}
7054
-
7055
-
iron-webcrypto@0.10.1: {}
7056
-
7057
-
is-binary-path@2.1.0:
7058
-
dependencies:
7059
-
binary-extensions: 2.3.0
7060
-
7061
-
is-core-module@2.15.1:
7062
-
dependencies:
7063
-
hasown: 2.0.2
7064
-
7065
-
is-extglob@2.1.1: {}
7066
-
7067
-
is-fullwidth-code-point@3.0.0: {}
7068
-
7069
-
is-glob@4.0.3:
7070
-
dependencies:
7071
-
is-extglob: 2.1.1
7072
-
7073
-
is-number@7.0.0: {}
7074
-
7075
-
isexe@2.0.0: {}
7076
-
7077
-
iso-datestring-validator@2.2.2: {}
7078
-
7079
-
jackspeak@3.4.3:
7080
-
dependencies:
7081
-
'@isaacs/cliui': 8.0.2
7082
-
optionalDependencies:
7083
-
'@pkgjs/parseargs': 0.11.0
7084
-
7085
-
jackspeak@4.0.2:
7086
-
dependencies:
7087
-
'@isaacs/cliui': 8.0.2
7088
-
7089
-
jiti@1.21.6: {}
7090
-
7091
-
jiti@2.4.1:
7092
-
optional: true
7093
-
7094
-
jose@5.9.6: {}
7095
-
7096
-
joycon@3.1.1: {}
7097
-
7098
-
js-base64@3.7.7: {}
7099
-
7100
-
js-tokens@4.0.0: {}
7101
-
7102
-
js-yaml@4.1.0:
7103
-
dependencies:
7104
-
argparse: 2.0.1
7105
-
7106
-
jsesc@3.0.2: {}
7107
-
7108
-
json-buffer@3.0.1: {}
7109
-
7110
-
json-schema-traverse@0.4.1: {}
7111
-
7112
-
json-stable-stringify-without-jsonify@1.0.1: {}
7113
-
7114
-
json5@2.2.3: {}
7115
-
7116
-
keyv@4.5.4:
7117
-
dependencies:
7118
-
json-buffer: 3.0.1
7119
-
7120
-
levn@0.4.1:
7121
-
dependencies:
7122
-
prelude-ls: 1.2.1
7123
-
type-check: 0.4.0
7124
-
7125
-
libsql@0.4.7:
7126
-
dependencies:
7127
-
'@neon-rs/load': 0.0.4
7128
-
detect-libc: 2.0.2
7129
-
optionalDependencies:
7130
-
'@libsql/darwin-arm64': 0.4.7
7131
-
'@libsql/darwin-x64': 0.4.7
7132
-
'@libsql/linux-arm64-gnu': 0.4.7
7133
-
'@libsql/linux-arm64-musl': 0.4.7
7134
-
'@libsql/linux-x64-gnu': 0.4.7
7135
-
'@libsql/linux-x64-musl': 0.4.7
7136
-
'@libsql/win32-x64-msvc': 0.4.7
7137
-
7138
-
lilconfig@3.1.3: {}
7139
-
7140
-
lines-and-columns@1.2.4: {}
7141
-
7142
-
load-tsconfig@0.2.5: {}
7143
-
7144
-
locate-path@6.0.0:
7145
-
dependencies:
7146
-
p-locate: 5.0.0
7147
-
7148
-
lodash.memoize@4.1.2: {}
7149
-
7150
-
lodash.merge@4.6.2: {}
7151
-
7152
-
lodash.sortby@4.7.0: {}
7153
-
7154
-
lodash.uniq@4.5.0: {}
7155
-
7156
-
lru-cache@10.4.3: {}
7157
-
7158
-
lru-cache@11.0.2: {}
7159
-
7160
-
lru-cache@5.1.1:
7161
-
dependencies:
7162
-
yallist: 3.1.1
7163
-
7164
-
lucide-react@0.464.0(react@19.0.0):
7165
-
dependencies:
7166
-
react: 19.0.0
7167
-
7168
-
make-error@1.3.6: {}
7169
-
7170
-
mdn-data@2.0.28: {}
7171
-
7172
-
mdn-data@2.0.30: {}
7173
-
7174
-
merge2@1.4.1: {}
7175
-
7176
-
micromatch@4.0.8:
7177
-
dependencies:
7178
-
braces: 3.0.3
7179
-
picomatch: 2.3.1
7180
-
7181
-
mime-db@1.52.0: {}
7182
-
7183
-
mime-types@2.1.35:
7184
-
dependencies:
7185
-
mime-db: 1.52.0
7186
-
7187
-
minimatch@10.0.1:
7188
-
dependencies:
7189
-
brace-expansion: 2.0.1
7190
-
7191
-
minimatch@3.1.2:
7192
-
dependencies:
7193
-
brace-expansion: 1.1.11
7194
-
7195
-
minimatch@9.0.5:
7196
-
dependencies:
7197
-
brace-expansion: 2.0.1
7198
-
7199
-
minimist@1.2.8: {}
7200
-
7201
-
minipass@7.1.2: {}
7202
-
7203
-
module-details-from-path@1.0.3: {}
7204
-
7205
-
ms@2.1.3: {}
7206
-
7207
-
multiformats@13.3.1: {}
7208
-
7209
-
multiformats@9.9.0: {}
7210
-
7211
-
mz@2.7.0:
7212
-
dependencies:
7213
-
any-promise: 1.3.0
7214
-
object-assign: 4.1.1
7215
-
thenify-all: 1.6.0
7216
-
7217
-
nanoid@3.3.8: {}
7218
-
7219
-
nanoid@5.0.9: {}
7220
-
7221
-
natural-compare@1.4.0: {}
7222
-
7223
-
node-domexception@1.0.0: {}
7224
-
7225
-
node-fetch@3.3.2:
7226
-
dependencies:
7227
-
data-uri-to-buffer: 4.0.1
7228
-
fetch-blob: 3.2.0
7229
-
formdata-polyfill: 4.0.10
7230
-
7231
-
node-gyp-build-optional-packages@5.1.1:
7232
-
dependencies:
7233
-
detect-libc: 2.0.2
7234
-
optional: true
7235
-
7236
-
node-gyp-build@4.8.4: {}
7237
-
7238
-
node-releases@2.0.18: {}
7239
-
7240
-
normalize-path@3.0.0: {}
7241
-
7242
-
normalize-range@0.1.2: {}
7243
-
7244
-
nth-check@2.1.1:
7245
-
dependencies:
7246
-
boolbase: 1.0.0
7247
-
7248
-
object-assign@4.1.1: {}
7249
-
7250
-
object-hash@3.0.0: {}
7251
-
7252
-
on-exit-leak-free@2.1.2: {}
7253
-
7254
-
once@1.4.0:
7255
-
dependencies:
7256
-
wrappy: 1.0.2
7257
-
7258
-
optionator@0.9.4:
7259
-
dependencies:
7260
-
deep-is: 0.1.4
7261
-
fast-levenshtein: 2.0.6
7262
-
levn: 0.4.1
7263
-
prelude-ls: 1.2.1
7264
-
type-check: 0.4.0
7265
-
word-wrap: 1.2.5
7266
-
7267
-
p-limit@3.1.0:
7268
-
dependencies:
7269
-
yocto-queue: 0.1.0
7270
-
7271
-
p-locate@5.0.0:
7272
-
dependencies:
7273
-
p-limit: 3.1.0
7274
-
7275
-
package-json-from-dist@1.0.1: {}
7276
-
7277
-
parent-module@1.0.1:
7278
-
dependencies:
7279
-
callsites: 3.1.0
7280
-
7281
-
partysocket@1.0.2:
7282
-
dependencies:
7283
-
event-target-shim: 6.0.2
7284
-
7285
-
path-exists@4.0.0: {}
7286
-
7287
-
path-key@3.1.1: {}
7288
-
7289
-
path-parse@1.0.7: {}
7290
-
7291
-
path-scurry@1.11.1:
7292
-
dependencies:
7293
-
lru-cache: 10.4.3
7294
-
minipass: 7.1.2
7295
-
7296
-
path-scurry@2.0.0:
7297
-
dependencies:
7298
-
lru-cache: 11.0.2
7299
-
minipass: 7.1.2
7300
-
7301
-
pg-int8@1.0.1: {}
7302
-
7303
-
pg-protocol@1.7.0: {}
7304
-
7305
-
pg-types@2.2.0:
7306
-
dependencies:
7307
-
pg-int8: 1.0.1
7308
-
postgres-array: 2.0.0
7309
-
postgres-bytea: 1.0.0
7310
-
postgres-date: 1.0.7
7311
-
postgres-interval: 1.2.0
7312
-
7313
-
picocolors@1.1.1: {}
7314
-
7315
-
picomatch@2.3.1: {}
7316
-
7317
-
picomatch@4.0.2: {}
7318
-
7319
-
pify@2.3.0: {}
7320
-
7321
-
pino-abstract-transport@1.2.0:
7322
-
dependencies:
7323
-
readable-stream: 4.5.2
7324
-
split2: 4.2.0
7325
-
7326
-
pino-abstract-transport@2.0.0:
7327
-
dependencies:
7328
-
split2: 4.2.0
7329
-
7330
-
pino-pretty@13.0.0:
7331
-
dependencies:
7332
-
colorette: 2.0.20
7333
-
dateformat: 4.6.3
7334
-
fast-copy: 3.0.2
7335
-
fast-safe-stringify: 2.1.1
7336
-
help-me: 5.0.0
7337
-
joycon: 3.1.1
7338
-
minimist: 1.2.8
7339
-
on-exit-leak-free: 2.1.2
7340
-
pino-abstract-transport: 2.0.0
7341
-
pump: 3.0.2
7342
-
secure-json-parse: 2.7.0
7343
-
sonic-boom: 4.2.0
7344
-
strip-json-comments: 3.1.1
7345
-
7346
-
pino-std-serializers@6.2.2: {}
7347
-
7348
-
pino-std-serializers@7.0.0: {}
7349
-
7350
-
pino@8.21.0:
7351
-
dependencies:
7352
-
atomic-sleep: 1.0.0
7353
-
fast-redact: 3.5.0
7354
-
on-exit-leak-free: 2.1.2
7355
-
pino-abstract-transport: 1.2.0
7356
-
pino-std-serializers: 6.2.2
7357
-
process-warning: 3.0.0
7358
-
quick-format-unescaped: 4.0.4
7359
-
real-require: 0.2.0
7360
-
safe-stable-stringify: 2.5.0
7361
-
sonic-boom: 3.8.1
7362
-
thread-stream: 2.7.0
7363
-
7364
-
pino@9.5.0:
7365
-
dependencies:
7366
-
atomic-sleep: 1.0.0
7367
-
fast-redact: 3.5.0
7368
-
on-exit-leak-free: 2.1.2
7369
-
pino-abstract-transport: 2.0.0
7370
-
pino-std-serializers: 7.0.0
7371
-
process-warning: 4.0.0
7372
-
quick-format-unescaped: 4.0.4
7373
-
real-require: 0.2.0
7374
-
safe-stable-stringify: 2.5.0
7375
-
sonic-boom: 4.2.0
7376
-
thread-stream: 3.1.0
7377
-
7378
-
pirates@4.0.6: {}
7379
-
7380
-
postcss-calc@10.0.2(postcss@8.4.49):
7381
-
dependencies:
7382
-
postcss: 8.4.49
7383
-
postcss-selector-parser: 6.1.2
7384
-
postcss-value-parser: 4.2.0
7385
-
7386
-
postcss-colormin@7.0.2(postcss@8.4.49):
7387
-
dependencies:
7388
-
browserslist: 4.24.2
7389
-
caniuse-api: 3.0.0
7390
-
colord: 2.9.3
7391
-
postcss: 8.4.49
7392
-
postcss-value-parser: 4.2.0
7393
-
7394
-
postcss-convert-values@7.0.4(postcss@8.4.49):
7395
-
dependencies:
7396
-
browserslist: 4.24.2
7397
-
postcss: 8.4.49
7398
-
postcss-value-parser: 4.2.0
7399
-
7400
-
postcss-discard-comments@7.0.3(postcss@8.4.49):
7401
-
dependencies:
7402
-
postcss: 8.4.49
7403
-
postcss-selector-parser: 6.1.2
7404
-
7405
-
postcss-discard-duplicates@7.0.1(postcss@8.4.49):
7406
-
dependencies:
7407
-
postcss: 8.4.49
7408
-
7409
-
postcss-discard-empty@7.0.0(postcss@8.4.49):
7410
-
dependencies:
7411
-
postcss: 8.4.49
7412
-
7413
-
postcss-discard-overridden@7.0.0(postcss@8.4.49):
7414
-
dependencies:
7415
-
postcss: 8.4.49
7416
-
7417
-
postcss-import@15.1.0(postcss@8.4.49):
7418
-
dependencies:
7419
-
postcss: 8.4.49
7420
-
postcss-value-parser: 4.2.0
7421
-
read-cache: 1.0.0
7422
-
resolve: 1.22.8
7423
-
7424
-
postcss-js@4.0.1(postcss@8.4.49):
7425
-
dependencies:
7426
-
camelcase-css: 2.0.1
7427
-
postcss: 8.4.49
7428
-
7429
-
postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3)):
7430
-
dependencies:
7431
-
lilconfig: 3.1.3
7432
-
yaml: 2.6.1
7433
-
optionalDependencies:
7434
-
postcss: 8.4.49
7435
-
ts-node: 10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3)
7436
-
7437
-
postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1):
7438
-
dependencies:
7439
-
lilconfig: 3.1.3
7440
-
optionalDependencies:
7441
-
jiti: 2.4.1
7442
-
postcss: 8.4.49
7443
-
tsx: 4.19.2
7444
-
yaml: 2.6.1
7445
-
7446
-
postcss-merge-longhand@7.0.4(postcss@8.4.49):
7447
-
dependencies:
7448
-
postcss: 8.4.49
7449
-
postcss-value-parser: 4.2.0
7450
-
stylehacks: 7.0.4(postcss@8.4.49)
7451
-
7452
-
postcss-merge-rules@7.0.4(postcss@8.4.49):
7453
-
dependencies:
7454
-
browserslist: 4.24.2
7455
-
caniuse-api: 3.0.0
7456
-
cssnano-utils: 5.0.0(postcss@8.4.49)
7457
-
postcss: 8.4.49
7458
-
postcss-selector-parser: 6.1.2
7459
-
7460
-
postcss-minify-font-values@7.0.0(postcss@8.4.49):
7461
-
dependencies:
7462
-
postcss: 8.4.49
7463
-
postcss-value-parser: 4.2.0
7464
-
7465
-
postcss-minify-gradients@7.0.0(postcss@8.4.49):
7466
-
dependencies:
7467
-
colord: 2.9.3
7468
-
cssnano-utils: 5.0.0(postcss@8.4.49)
7469
-
postcss: 8.4.49
7470
-
postcss-value-parser: 4.2.0
7471
-
7472
-
postcss-minify-params@7.0.2(postcss@8.4.49):
7473
-
dependencies:
7474
-
browserslist: 4.24.2
7475
-
cssnano-utils: 5.0.0(postcss@8.4.49)
7476
-
postcss: 8.4.49
7477
-
postcss-value-parser: 4.2.0
7478
-
7479
-
postcss-minify-selectors@7.0.4(postcss@8.4.49):
7480
-
dependencies:
7481
-
cssesc: 3.0.0
7482
-
postcss: 8.4.49
7483
-
postcss-selector-parser: 6.1.2
7484
-
7485
-
postcss-nested@6.2.0(postcss@8.4.49):
7486
-
dependencies:
7487
-
postcss: 8.4.49
7488
-
postcss-selector-parser: 6.1.2
7489
-
7490
-
postcss-normalize-charset@7.0.0(postcss@8.4.49):
7491
-
dependencies:
7492
-
postcss: 8.4.49
7493
-
7494
-
postcss-normalize-display-values@7.0.0(postcss@8.4.49):
7495
-
dependencies:
7496
-
postcss: 8.4.49
7497
-
postcss-value-parser: 4.2.0
7498
-
7499
-
postcss-normalize-positions@7.0.0(postcss@8.4.49):
7500
-
dependencies:
7501
-
postcss: 8.4.49
7502
-
postcss-value-parser: 4.2.0
7503
-
7504
-
postcss-normalize-repeat-style@7.0.0(postcss@8.4.49):
7505
-
dependencies:
7506
-
postcss: 8.4.49
7507
-
postcss-value-parser: 4.2.0
7508
-
7509
-
postcss-normalize-string@7.0.0(postcss@8.4.49):
7510
-
dependencies:
7511
-
postcss: 8.4.49
7512
-
postcss-value-parser: 4.2.0
7513
-
7514
-
postcss-normalize-timing-functions@7.0.0(postcss@8.4.49):
7515
-
dependencies:
7516
-
postcss: 8.4.49
7517
-
postcss-value-parser: 4.2.0
7518
-
7519
-
postcss-normalize-unicode@7.0.2(postcss@8.4.49):
7520
-
dependencies:
7521
-
browserslist: 4.24.2
7522
-
postcss: 8.4.49
7523
-
postcss-value-parser: 4.2.0
7524
-
7525
-
postcss-normalize-url@7.0.0(postcss@8.4.49):
7526
-
dependencies:
7527
-
postcss: 8.4.49
7528
-
postcss-value-parser: 4.2.0
7529
-
7530
-
postcss-normalize-whitespace@7.0.0(postcss@8.4.49):
7531
-
dependencies:
7532
-
postcss: 8.4.49
7533
-
postcss-value-parser: 4.2.0
7534
-
7535
-
postcss-ordered-values@7.0.1(postcss@8.4.49):
7536
-
dependencies:
7537
-
cssnano-utils: 5.0.0(postcss@8.4.49)
7538
-
postcss: 8.4.49
7539
-
postcss-value-parser: 4.2.0
7540
-
7541
-
postcss-reduce-initial@7.0.2(postcss@8.4.49):
7542
-
dependencies:
7543
-
browserslist: 4.24.2
7544
-
caniuse-api: 3.0.0
7545
-
postcss: 8.4.49
7546
-
7547
-
postcss-reduce-transforms@7.0.0(postcss@8.4.49):
7548
-
dependencies:
7549
-
postcss: 8.4.49
7550
-
postcss-value-parser: 4.2.0
7551
-
7552
-
postcss-selector-parser@6.1.2:
7553
-
dependencies:
7554
-
cssesc: 3.0.0
7555
-
util-deprecate: 1.0.2
7556
-
7557
-
postcss-svgo@7.0.1(postcss@8.4.49):
7558
-
dependencies:
7559
-
postcss: 8.4.49
7560
-
postcss-value-parser: 4.2.0
7561
-
svgo: 3.3.2
7562
-
7563
-
postcss-unique-selectors@7.0.3(postcss@8.4.49):
7564
-
dependencies:
7565
-
postcss: 8.4.49
7566
-
postcss-selector-parser: 6.1.2
7567
-
7568
-
postcss-value-parser@4.2.0: {}
7569
-
7570
-
postcss@8.4.49:
7571
-
dependencies:
7572
-
nanoid: 3.3.8
7573
-
picocolors: 1.1.1
7574
-
source-map-js: 1.2.1
7575
-
7576
-
postgres-array@2.0.0: {}
7577
-
7578
-
postgres-bytea@1.0.0: {}
7579
-
7580
-
postgres-date@1.0.7: {}
7581
-
7582
-
postgres-interval@1.2.0:
7583
-
dependencies:
7584
-
xtend: 4.0.2
7585
-
7586
-
prelude-ls@1.2.1: {}
7587
-
7588
-
prettier@3.4.1: {}
7589
-
7590
-
process-warning@3.0.0: {}
7591
-
7592
-
process-warning@4.0.0: {}
7593
-
7594
-
process@0.11.10: {}
7595
-
7596
-
promise-limit@2.7.0: {}
7597
-
7598
-
proxy-from-env@1.1.0: {}
7599
-
7600
-
psl@1.15.0:
7601
-
dependencies:
7602
-
punycode: 2.3.1
7603
-
7604
-
pump@3.0.2:
7605
-
dependencies:
7606
-
end-of-stream: 1.4.4
7607
-
once: 1.4.0
7608
-
7609
-
punycode@2.3.1: {}
7610
-
7611
-
queue-microtask@1.2.3: {}
7612
-
7613
-
quick-format-unescaped@4.0.4: {}
7614
-
7615
-
react-dom@19.0.0(react@19.0.0):
7616
-
dependencies:
7617
-
react: 19.0.0
7618
-
scheduler: 0.25.0
7619
-
7620
-
react-hook-form@7.54.1(react@19.0.0):
7621
-
dependencies:
7622
-
react: 19.0.0
7623
-
7624
-
react-remove-scroll-bar@2.3.8(@types/react@19.0.1)(react@19.0.0):
7625
-
dependencies:
7626
-
react: 19.0.0
7627
-
react-style-singleton: 2.2.3(@types/react@19.0.1)(react@19.0.0)
7628
-
tslib: 2.8.1
7629
-
optionalDependencies:
7630
-
'@types/react': 19.0.1
7631
-
7632
-
react-remove-scroll@2.6.2(@types/react@19.0.1)(react@19.0.0):
7633
-
dependencies:
7634
-
react: 19.0.0
7635
-
react-remove-scroll-bar: 2.3.8(@types/react@19.0.1)(react@19.0.0)
7636
-
react-style-singleton: 2.2.3(@types/react@19.0.1)(react@19.0.0)
7637
-
tslib: 2.8.1
7638
-
use-callback-ref: 1.3.3(@types/react@19.0.1)(react@19.0.0)
7639
-
use-sidecar: 1.1.2(@types/react@19.0.1)(react@19.0.0)
7640
-
optionalDependencies:
7641
-
'@types/react': 19.0.1
7642
-
7643
-
react-style-singleton@2.2.3(@types/react@19.0.1)(react@19.0.0):
7644
-
dependencies:
7645
-
get-nonce: 1.0.1
7646
-
react: 19.0.0
7647
-
tslib: 2.8.1
7648
-
optionalDependencies:
7649
-
'@types/react': 19.0.1
7650
-
7651
-
react@19.0.0: {}
7652
-
7653
-
read-cache@1.0.0:
7654
-
dependencies:
7655
-
pify: 2.3.0
7656
-
7657
-
readable-stream@4.5.2:
7658
-
dependencies:
7659
-
abort-controller: 3.0.0
7660
-
buffer: 6.0.3
7661
-
events: 3.3.0
7662
-
process: 0.11.10
7663
-
string_decoder: 1.3.0
7664
-
7665
-
readdirp@3.6.0:
7666
-
dependencies:
7667
-
picomatch: 2.3.1
7668
-
7669
-
readdirp@4.0.2: {}
7670
-
7671
-
real-require@0.2.0: {}
7672
-
7673
-
require-in-the-middle@7.4.0:
7674
-
dependencies:
7675
-
debug: 4.3.7
7676
-
module-details-from-path: 1.0.3
7677
-
resolve: 1.22.8
7678
-
transitivePeerDependencies:
7679
-
- supports-color
7680
-
7681
-
resolve-from@4.0.0: {}
7682
-
7683
-
resolve-from@5.0.0: {}
7684
-
7685
-
resolve-pkg-maps@1.0.0: {}
7686
-
7687
-
resolve@1.22.8:
7688
-
dependencies:
7689
-
is-core-module: 2.15.1
7690
-
path-parse: 1.0.7
7691
-
supports-preserve-symlinks-flag: 1.0.0
7692
-
7693
-
reusify@1.0.4: {}
7694
-
7695
-
rimraf@6.0.1:
7696
-
dependencies:
7697
-
glob: 11.0.0
7698
-
package-json-from-dist: 1.0.1
7699
-
7700
-
rollup@4.28.0:
7701
-
dependencies:
7702
-
'@types/estree': 1.0.6
7703
-
optionalDependencies:
7704
-
'@rollup/rollup-android-arm-eabi': 4.28.0
7705
-
'@rollup/rollup-android-arm64': 4.28.0
7706
-
'@rollup/rollup-darwin-arm64': 4.28.0
7707
-
'@rollup/rollup-darwin-x64': 4.28.0
7708
-
'@rollup/rollup-freebsd-arm64': 4.28.0
7709
-
'@rollup/rollup-freebsd-x64': 4.28.0
7710
-
'@rollup/rollup-linux-arm-gnueabihf': 4.28.0
7711
-
'@rollup/rollup-linux-arm-musleabihf': 4.28.0
7712
-
'@rollup/rollup-linux-arm64-gnu': 4.28.0
7713
-
'@rollup/rollup-linux-arm64-musl': 4.28.0
7714
-
'@rollup/rollup-linux-powerpc64le-gnu': 4.28.0
7715
-
'@rollup/rollup-linux-riscv64-gnu': 4.28.0
7716
-
'@rollup/rollup-linux-s390x-gnu': 4.28.0
7717
-
'@rollup/rollup-linux-x64-gnu': 4.28.0
7718
-
'@rollup/rollup-linux-x64-musl': 4.28.0
7719
-
'@rollup/rollup-win32-arm64-msvc': 4.28.0
7720
-
'@rollup/rollup-win32-ia32-msvc': 4.28.0
7721
-
'@rollup/rollup-win32-x64-msvc': 4.28.0
7722
-
fsevents: 2.3.3
7723
-
7724
-
run-parallel@1.2.0:
7725
-
dependencies:
7726
-
queue-microtask: 1.2.3
7727
-
7728
-
safe-buffer@5.2.1: {}
7729
-
7730
-
safe-stable-stringify@2.5.0: {}
7731
-
7732
-
scheduler@0.25.0: {}
7733
-
7734
-
secure-json-parse@2.7.0: {}
7735
-
7736
-
semver@6.3.1: {}
7737
-
7738
-
semver@7.6.3: {}
7739
-
7740
-
shebang-command@2.0.0:
7741
-
dependencies:
7742
-
shebang-regex: 3.0.0
7743
-
7744
-
shebang-regex@3.0.0: {}
7745
-
7746
-
shimmer@1.2.1: {}
7747
-
7748
-
signal-exit@4.1.0: {}
7749
-
7750
-
sonic-boom@3.8.1:
7751
-
dependencies:
7752
-
atomic-sleep: 1.0.0
7753
-
7754
-
sonic-boom@4.2.0:
7755
-
dependencies:
7756
-
atomic-sleep: 1.0.0
7757
-
7758
-
source-map-js@1.2.1: {}
7759
-
7760
-
source-map-support@0.5.21:
7761
-
dependencies:
7762
-
buffer-from: 1.1.2
7763
-
source-map: 0.6.1
7764
-
7765
-
source-map@0.6.1: {}
7766
-
7767
-
source-map@0.8.0-beta.0:
7768
-
dependencies:
7769
-
whatwg-url: 7.1.0
7770
-
7771
-
split2@4.2.0: {}
7772
-
7773
-
string-width@4.2.3:
7774
-
dependencies:
7775
-
emoji-regex: 8.0.0
7776
-
is-fullwidth-code-point: 3.0.0
7777
-
strip-ansi: 6.0.1
7778
-
7779
-
string-width@5.1.2:
7780
-
dependencies:
7781
-
eastasianwidth: 0.2.0
7782
-
emoji-regex: 9.2.2
7783
-
strip-ansi: 7.1.0
7784
-
7785
-
string_decoder@1.3.0:
7786
-
dependencies:
7787
-
safe-buffer: 5.2.1
7788
-
7789
-
strip-ansi@6.0.1:
7790
-
dependencies:
7791
-
ansi-regex: 5.0.1
7792
-
7793
-
strip-ansi@7.1.0:
7794
-
dependencies:
7795
-
ansi-regex: 6.1.0
7796
-
7797
-
strip-json-comments@3.1.1: {}
7798
-
7799
-
stylehacks@7.0.4(postcss@8.4.49):
7800
-
dependencies:
7801
-
browserslist: 4.24.2
7802
-
postcss: 8.4.49
7803
-
postcss-selector-parser: 6.1.2
7804
-
7805
-
sucrase@3.35.0:
7806
-
dependencies:
7807
-
'@jridgewell/gen-mapping': 0.3.5
7808
-
commander: 4.1.1
7809
-
glob: 10.4.5
7810
-
lines-and-columns: 1.2.4
7811
-
mz: 2.7.0
7812
-
pirates: 4.0.6
7813
-
ts-interface-checker: 0.1.13
7814
-
7815
-
supports-color@7.2.0:
7816
-
dependencies:
7817
-
has-flag: 4.0.0
7818
-
7819
-
supports-preserve-symlinks-flag@1.0.0: {}
7820
-
7821
-
svgo@3.3.2:
7822
-
dependencies:
7823
-
'@trysound/sax': 0.2.0
7824
-
commander: 7.2.0
7825
-
css-select: 5.1.0
7826
-
css-tree: 2.3.1
7827
-
css-what: 6.1.0
7828
-
csso: 5.0.5
7829
-
picocolors: 1.1.1
7830
-
7831
-
tailwind-merge@2.5.5: {}
7832
-
7833
-
tailwindcss-animate@1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3))):
7834
-
dependencies:
7835
-
tailwindcss: 3.4.16(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3))
7836
-
7837
-
tailwindcss@3.4.16(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3)):
7838
-
dependencies:
7839
-
'@alloc/quick-lru': 5.2.0
7840
-
arg: 5.0.2
7841
-
chokidar: 3.6.0
7842
-
didyoumean: 1.2.2
7843
-
dlv: 1.1.3
7844
-
fast-glob: 3.3.2
7845
-
glob-parent: 6.0.2
7846
-
is-glob: 4.0.3
7847
-
jiti: 1.21.6
7848
-
lilconfig: 3.1.3
7849
-
micromatch: 4.0.8
7850
-
normalize-path: 3.0.0
7851
-
object-hash: 3.0.0
7852
-
picocolors: 1.1.1
7853
-
postcss: 8.4.49
7854
-
postcss-import: 15.1.0(postcss@8.4.49)
7855
-
postcss-js: 4.0.1(postcss@8.4.49)
7856
-
postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3))
7857
-
postcss-nested: 6.2.0(postcss@8.4.49)
7858
-
postcss-selector-parser: 6.1.2
7859
-
resolve: 1.22.8
7860
-
sucrase: 3.35.0
7861
-
transitivePeerDependencies:
7862
-
- ts-node
7863
-
7864
-
thenify-all@1.6.0:
7865
-
dependencies:
7866
-
thenify: 3.3.1
7867
-
7868
-
thenify@3.3.1:
7869
-
dependencies:
7870
-
any-promise: 1.3.0
7871
-
7872
-
thread-stream@2.7.0:
7873
-
dependencies:
7874
-
real-require: 0.2.0
7875
-
7876
-
thread-stream@3.1.0:
7877
-
dependencies:
7878
-
real-require: 0.2.0
7879
-
7880
-
tiny-invariant@1.3.3: {}
7881
-
7882
-
tiny-warning@1.0.3: {}
7883
-
7884
-
tinyexec@0.3.1: {}
7885
-
7886
-
tinyglobby@0.2.10:
7887
-
dependencies:
7888
-
fdir: 6.4.2(picomatch@4.0.2)
7889
-
picomatch: 4.0.2
7890
-
7891
-
tlds@1.255.0: {}
7892
-
7893
-
to-regex-range@5.0.1:
7894
-
dependencies:
7895
-
is-number: 7.0.0
7896
-
7897
-
tr46@1.0.1:
7898
-
dependencies:
7899
-
punycode: 2.3.1
7900
-
7901
-
tree-kill@1.2.2: {}
7902
-
7903
-
ts-api-utils@1.4.3(typescript@5.6.3):
7904
-
dependencies:
7905
-
typescript: 5.6.3
7906
-
7907
-
ts-interface-checker@0.1.13: {}
7908
-
7909
-
ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.6.3):
7910
-
dependencies:
7911
-
'@cspotcode/source-map-support': 0.8.1
7912
-
'@tsconfig/node10': 1.0.11
7913
-
'@tsconfig/node12': 1.0.11
7914
-
'@tsconfig/node14': 1.0.3
7915
-
'@tsconfig/node16': 1.0.4
7916
-
'@types/node': 22.10.1
7917
-
acorn: 8.14.0
7918
-
acorn-walk: 8.3.4
7919
-
arg: 4.1.3
7920
-
create-require: 1.1.1
7921
-
diff: 4.0.2
7922
-
make-error: 1.3.6
7923
-
typescript: 5.6.3
7924
-
v8-compile-cache-lib: 3.0.1
7925
-
yn: 3.1.1
7926
-
optionalDependencies:
7927
-
'@swc/core': 1.9.3
7928
-
optional: true
7929
-
7930
-
ts-node@10.9.2(@swc/core@1.9.3)(@types/node@22.10.1)(typescript@5.7.2):
7931
-
dependencies:
7932
-
'@cspotcode/source-map-support': 0.8.1
7933
-
'@tsconfig/node10': 1.0.11
7934
-
'@tsconfig/node12': 1.0.11
7935
-
'@tsconfig/node14': 1.0.3
7936
-
'@tsconfig/node16': 1.0.4
7937
-
'@types/node': 22.10.1
7938
-
acorn: 8.14.0
7939
-
acorn-walk: 8.3.4
7940
-
arg: 4.1.3
7941
-
create-require: 1.1.1
7942
-
diff: 4.0.2
7943
-
make-error: 1.3.6
7944
-
typescript: 5.7.2
7945
-
v8-compile-cache-lib: 3.0.1
7946
-
yn: 3.1.1
7947
-
optionalDependencies:
7948
-
'@swc/core': 1.9.3
7949
-
7950
-
tslib@2.8.1: {}
7951
-
7952
-
tsup@8.3.5(@swc/core@1.9.3)(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1):
7953
-
dependencies:
7954
-
bundle-require: 5.0.0(esbuild@0.24.0)
7955
-
cac: 6.7.14
7956
-
chokidar: 4.0.1
7957
-
consola: 3.2.3
7958
-
debug: 4.3.7
7959
-
esbuild: 0.24.0
7960
-
joycon: 3.1.1
7961
-
picocolors: 1.1.1
7962
-
postcss-load-config: 6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1)
7963
-
resolve-from: 5.0.0
7964
-
rollup: 4.28.0
7965
-
source-map: 0.8.0-beta.0
7966
-
sucrase: 3.35.0
7967
-
tinyexec: 0.3.1
7968
-
tinyglobby: 0.2.10
7969
-
tree-kill: 1.2.2
7970
-
optionalDependencies:
7971
-
'@swc/core': 1.9.3
7972
-
postcss: 8.4.49
7973
-
typescript: 5.7.2
7974
-
transitivePeerDependencies:
7975
-
- jiti
7976
-
- supports-color
7977
-
- tsx
7978
-
- yaml
7979
-
7980
-
tsx@4.19.2:
7981
-
dependencies:
7982
-
esbuild: 0.23.1
7983
-
get-tsconfig: 4.8.1
7984
-
optionalDependencies:
7985
-
fsevents: 2.3.3
7986
-
7987
-
turbo-darwin-64@2.3.3:
7988
-
optional: true
7989
-
7990
-
turbo-darwin-arm64@2.3.3:
7991
-
optional: true
7992
-
7993
-
turbo-linux-64@2.3.3:
7994
-
optional: true
7995
-
7996
-
turbo-linux-arm64@2.3.3:
7997
-
optional: true
7998
-
7999
-
turbo-windows-64@2.3.3:
8000
-
optional: true
8001
-
8002
-
turbo-windows-arm64@2.3.3:
8003
-
optional: true
8004
-
8005
-
turbo@2.3.3:
8006
-
optionalDependencies:
8007
-
turbo-darwin-64: 2.3.3
8008
-
turbo-darwin-arm64: 2.3.3
8009
-
turbo-linux-64: 2.3.3
8010
-
turbo-linux-arm64: 2.3.3
8011
-
turbo-windows-64: 2.3.3
8012
-
turbo-windows-arm64: 2.3.3
8013
-
8014
-
type-check@0.4.0:
8015
-
dependencies:
8016
-
prelude-ls: 1.2.1
8017
-
8018
-
typescript-eslint@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3):
8019
-
dependencies:
8020
-
'@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
8021
-
'@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
8022
-
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.6.3)
8023
-
eslint: 9.16.0(jiti@2.4.1)
8024
-
optionalDependencies:
8025
-
typescript: 5.6.3
8026
-
transitivePeerDependencies:
8027
-
- supports-color
8028
-
8029
-
typescript@5.6.3: {}
8030
-
8031
-
typescript@5.7.2: {}
8032
-
8033
-
uint8arrays@3.0.0:
8034
-
dependencies:
8035
-
multiformats: 9.9.0
8036
-
8037
-
uint8arrays@5.1.0:
8038
-
dependencies:
8039
-
multiformats: 13.3.1
8040
-
8041
-
undici-types@6.20.0: {}
8042
-
8043
-
undici@6.21.0: {}
8044
-
8045
-
unplugin@1.16.0:
8046
-
dependencies:
8047
-
acorn: 8.14.0
8048
-
webpack-virtual-modules: 0.6.2
8049
-
8050
-
update-browserslist-db@1.1.1(browserslist@4.24.2):
8051
-
dependencies:
8052
-
browserslist: 4.24.2
8053
-
escalade: 3.2.0
8054
-
picocolors: 1.1.1
8055
-
8056
-
uri-js@4.4.1:
8057
-
dependencies:
8058
-
punycode: 2.3.1
8059
-
8060
-
use-callback-ref@1.3.3(@types/react@19.0.1)(react@19.0.0):
8061
-
dependencies:
8062
-
react: 19.0.0
8063
-
tslib: 2.8.1
8064
-
optionalDependencies:
8065
-
'@types/react': 19.0.1
8066
-
8067
-
use-sidecar@1.1.2(@types/react@19.0.1)(react@19.0.0):
8068
-
dependencies:
8069
-
detect-node-es: 1.1.0
8070
-
react: 19.0.0
8071
-
tslib: 2.8.1
8072
-
optionalDependencies:
8073
-
'@types/react': 19.0.1
8074
-
8075
-
use-sync-external-store@1.2.2(react@19.0.0):
8076
-
dependencies:
8077
-
react: 19.0.0
8078
-
8079
-
util-deprecate@1.0.2: {}
8080
-
8081
-
v8-compile-cache-lib@3.0.1: {}
8082
-
8083
-
vite@6.0.2(@types/node@22.10.1)(jiti@2.4.1)(tsx@4.19.2)(yaml@2.6.1):
8084
-
dependencies:
8085
-
esbuild: 0.24.0
8086
-
postcss: 8.4.49
8087
-
rollup: 4.28.0
8088
-
optionalDependencies:
8089
-
'@types/node': 22.10.1
8090
-
fsevents: 2.3.3
8091
-
jiti: 2.4.1
8092
-
tsx: 4.19.2
8093
-
yaml: 2.6.1
8094
-
8095
-
web-streams-polyfill@3.3.3: {}
8096
-
8097
-
webidl-conversions@4.0.2: {}
8098
-
8099
-
webpack-virtual-modules@0.6.2: {}
8100
-
8101
-
whatwg-url@7.1.0:
8102
-
dependencies:
8103
-
lodash.sortby: 4.7.0
8104
-
tr46: 1.0.1
8105
-
webidl-conversions: 4.0.2
8106
-
8107
-
which@2.0.2:
8108
-
dependencies:
8109
-
isexe: 2.0.0
8110
-
8111
-
word-wrap@1.2.5: {}
8112
-
8113
-
wrap-ansi@7.0.0:
8114
-
dependencies:
8115
-
ansi-styles: 4.3.0
8116
-
string-width: 4.2.3
8117
-
strip-ansi: 6.0.1
8118
-
8119
-
wrap-ansi@8.1.0:
8120
-
dependencies:
8121
-
ansi-styles: 6.2.1
8122
-
string-width: 5.1.2
8123
-
strip-ansi: 7.1.0
8124
-
8125
-
wrappy@1.0.2: {}
8126
-
8127
-
ws@8.18.0(bufferutil@4.0.8):
8128
-
optionalDependencies:
8129
-
bufferutil: 4.0.8
8130
-
8131
-
xtend@4.0.2: {}
8132
-
8133
-
yallist@3.1.1: {}
8134
-
8135
-
yaml@2.6.1: {}
8136
-
8137
-
yn@3.1.1: {}
8138
-
8139
-
yocto-queue@0.1.0: {}
8140
-
8141
-
zod@3.23.8: {}