Atproto AMA app
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

initial commit base setup

etienneburdet 686bdb61

+7895
+6
.dockerignore
··· 1 + node_modules 2 + .output 3 + .vinxi 4 + dist 5 + .env 6 + .git
+7
.env.example
··· 1 + DATABASE_URL=postgresql://askimut:askimut@localhost:5433/askimut 2 + APP_URL=http://127.0.0.1:3000 3 + OAUTH_PRIVATE_KEY= 4 + HOST=127.0.0.1 5 + PORT=3000 6 + NITRO_HOST=127.0.0.1 7 + NITRO_PORT=3000
+8
.gitignore
··· 1 + node_modules/ 2 + dist/ 3 + .output/ 4 + .vinxi/ 5 + .env 6 + *.local 7 + .DS_Store 8 + drizzle/meta/
+23
Dockerfile
··· 1 + # Stage 1: install dependencies 2 + FROM node:20-alpine AS deps 3 + RUN corepack enable && corepack prepare pnpm@10.17.1 --activate 4 + WORKDIR /app 5 + COPY package.json pnpm-lock.yaml ./ 6 + RUN pnpm install --frozen-lockfile 7 + 8 + # Stage 2: build application 9 + FROM node:20-alpine AS build 10 + RUN corepack enable && corepack prepare pnpm@10.17.1 --activate 11 + WORKDIR /app 12 + COPY --from=deps /app/node_modules ./node_modules 13 + COPY . . 14 + RUN pnpm run build 15 + 16 + # Stage 3: production runtime 17 + FROM node:20-alpine AS runtime 18 + WORKDIR /app 19 + ENV NODE_ENV=production 20 + COPY --from=build /app/.output ./.output 21 + COPY --from=build /app/node_modules ./node_modules 22 + EXPOSE 3000 23 + CMD ["node", ".output/server/index.mjs"]
+14
app.config.ts
··· 1 + import { defineConfig } from "@solidjs/start/config"; 2 + 3 + export default defineConfig({ 4 + middleware: "src/middleware.ts", 5 + server: { 6 + preset: "node-server", 7 + }, 8 + vite: { 9 + server: { 10 + host: "127.0.0.1", 11 + port: 3000, 12 + }, 13 + }, 14 + });
+21
bootstrap.md
··· 1 + We are doing an "ask me anything" app based on AT-proto. 2 + 3 + ### Stack 4 + We are going to use: 5 + - SolidStart as our main framework. Dockerized in production, not in dev. 6 + - Postgres as a database, dockerized. 7 + - Drizzle as an ORM. 8 + - Classic @atproto OAuth 9 + - CSS modules only. No Sass, no Tailwind. 10 + 11 + ### User Flow 12 + - Home '/' is only for logging in as of now. Should redirect to '/:handle' if logged in. 13 + - '/:handle' will :  14 + - if it's the current page either ask them if they want to open their questions. 15 + - if it's the current and their questions are opened, show a list of questions, answered or not. 16 + - If it's not the current user, either "user has not opened their questions" or a list of questions answered or not. 17 + 18 + ### Data flow 19 + - Both "is questions opened", questions and answers are pushed to the users PDS on top of being stored in db. 20 + - Ingester will put back things in db coming from the atmosphere 21 + - Records in db should have flag marking if they have been "reindexed from atmosphere" or if they are optimistics.
+14
docker-compose.yml
··· 1 + services: 2 + postgres: 3 + image: postgres:16-alpine 4 + ports: 5 + - "5433:5432" 6 + environment: 7 + POSTGRES_USER: askimut 8 + POSTGRES_PASSWORD: askimut 9 + POSTGRES_DB: askimut 10 + volumes: 11 + - pgdata:/var/lib/postgresql/data 12 + 13 + volumes: 14 + pgdata:
+10
drizzle.config.ts
··· 1 + import { defineConfig } from "drizzle-kit"; 2 + 3 + export default defineConfig({ 4 + dialect: "postgresql", 5 + schema: "./src/lib/schema.ts", 6 + out: "./drizzle", 7 + dbCredentials: { 8 + url: process.env.DATABASE_URL!, 9 + }, 10 + });
+35
package.json
··· 1 + { 2 + "name": "askimut", 3 + "type": "module", 4 + "scripts": { 5 + "dev": "vinxi dev", 6 + "build": "vinxi build", 7 + "start": "vinxi start", 8 + "db:generate": "drizzle-kit generate", 9 + "db:migrate": "drizzle-kit migrate", 10 + "db:push": "drizzle-kit push", 11 + "db:studio": "drizzle-kit studio" 12 + }, 13 + "dependencies": { 14 + "@atproto/api": "^0.13.0", 15 + "@atproto/identity": "^0.4.0", 16 + "@atproto/oauth-client-node": "^0.3.17", 17 + "@solidjs/meta": "^0.29.4", 18 + "@solidjs/router": "^0.15.3", 19 + "@solidjs/start": "^1.3.2", 20 + "drizzle-orm": "^0.39.0", 21 + "jose": "^6.0.0", 22 + "postgres": "^3.4.5", 23 + "solid-js": "^1.9.5", 24 + "vinxi": "^0.5.3" 25 + }, 26 + "devDependencies": { 27 + "@types/node": "^25.5.0", 28 + "drizzle-kit": "^0.30.0", 29 + "typescript": "^5.7.0" 30 + }, 31 + "packageManager": "pnpm@10.17.1", 32 + "engines": { 33 + "node": ">=20" 34 + } 35 + }
+6372
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + dependencies: 11 + '@atproto/api': 12 + specifier: ^0.13.0 13 + version: 0.13.35 14 + '@atproto/identity': 15 + specifier: ^0.4.0 16 + version: 0.4.12 17 + '@atproto/oauth-client-node': 18 + specifier: ^0.3.17 19 + version: 0.3.17 20 + '@solidjs/meta': 21 + specifier: ^0.29.4 22 + version: 0.29.4(solid-js@1.9.12) 23 + '@solidjs/router': 24 + specifier: ^0.15.3 25 + version: 0.15.4(solid-js@1.9.12) 26 + '@solidjs/start': 27 + specifier: ^1.3.2 28 + version: 1.3.2(solid-js@1.9.12)(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1))(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)) 29 + drizzle-orm: 30 + specifier: ^0.39.0 31 + version: 0.39.3(postgres@3.4.8) 32 + jose: 33 + specifier: ^6.0.0 34 + version: 6.2.2 35 + postgres: 36 + specifier: ^3.4.5 37 + version: 3.4.8 38 + solid-js: 39 + specifier: ^1.9.5 40 + version: 1.9.12 41 + vinxi: 42 + specifier: ^0.5.3 43 + version: 0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1) 44 + devDependencies: 45 + '@types/node': 46 + specifier: ^25.5.0 47 + version: 25.5.0 48 + drizzle-kit: 49 + specifier: ^0.30.0 50 + version: 0.30.6 51 + typescript: 52 + specifier: ^5.7.0 53 + version: 5.9.3 54 + 55 + packages: 56 + 57 + '@atproto-labs/did-resolver@0.2.6': 58 + resolution: {integrity: sha512-2K1bC04nI2fmgNcvof+yA28IhGlpWn2JKYlPa7To9JTKI45FINCGkQSGiL2nyXlyzDJJ34fZ1aq6/IRFIOIiqg==} 59 + 60 + '@atproto-labs/fetch-node@0.2.0': 61 + resolution: {integrity: sha512-Krq09nH/aeoiU2s9xdHA0FjTEFWG9B5FFenipv1iRixCcPc7V3DhTNDawxG9gI8Ny0k4dBVS9WTRN/IDzBx86Q==} 62 + engines: {node: '>=18.7.0'} 63 + 64 + '@atproto-labs/fetch@0.2.3': 65 + resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==} 66 + 67 + '@atproto-labs/handle-resolver-node@0.1.25': 68 + resolution: {integrity: sha512-NY9WYM2VLd3IuMGRkkmvGBg8xqVEaK/fitv1vD8SMXqFTekdpjOLCCyv7EFtqVHouzmDcL83VOvWRfHVa8V9Yw==} 69 + engines: {node: '>=18.7.0'} 70 + 71 + '@atproto-labs/handle-resolver@0.3.6': 72 + resolution: {integrity: sha512-qnSTXvOBNj1EHhp2qTWSX8MS5q3AwYU5LKlt5fBvSbCjgmTr2j0URHCv+ydrwO55KvsojIkTMgeMOh4YuY4fCA==} 73 + 74 + '@atproto-labs/identity-resolver@0.3.6': 75 + resolution: {integrity: sha512-qoWqBDRobln0NR8L8dQjSp79E0chGkBhibEgxQa2f9WD+JbJdjQ0YvwwO5yeQn05pJoJmAwmI2wyJ45zjU7aWg==} 76 + 77 + '@atproto-labs/pipe@0.1.1': 78 + resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==} 79 + 80 + '@atproto-labs/simple-store-memory@0.1.4': 81 + resolution: {integrity: sha512-3mKY4dP8I7yKPFj9VKpYyCRzGJOi5CEpOLPlRhoJyLmgs3J4RzDrjn323Oakjz2Aj2JzRU/AIvWRAZVhpYNJHw==} 82 + 83 + '@atproto-labs/simple-store@0.3.0': 84 + resolution: {integrity: sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ==} 85 + 86 + '@atproto/api@0.13.35': 87 + resolution: {integrity: sha512-vsEfBj0C333TLjDppvTdTE0IdKlXuljKSveAeI4PPx/l6eUKNnDTsYxvILtXUVzwUlTDmSRqy5O4Ryh78n1b7g==} 88 + 89 + '@atproto/common-web@0.4.19': 90 + resolution: {integrity: sha512-3BTi58p5WpT+9/zb6UZrdsXcfPo5P45UJm0E4iwHLILr+jc37CuBj9JReDSZ4U0i9RTrI3ZkfySyZ9bd+LnMsw==} 91 + 92 + '@atproto/crypto@0.4.5': 93 + resolution: {integrity: sha512-n40aKkMoCatP0u9Yvhrdk6fXyOHFDDbkdm4h4HCyWW+KlKl8iXfD5iV+ECq+w5BM+QH25aIpt3/j6EUNerhLxw==} 94 + engines: {node: '>=18.7.0'} 95 + 96 + '@atproto/did@0.3.0': 97 + resolution: {integrity: sha512-raUPzUGegtW/6OxwCmM8bhZvuIMzxG5t9oWsth6Tp91Kb5fTnHV2h/KKNF1C82doeA4BdXCErTyg7ISwLbQkzA==} 98 + 99 + '@atproto/identity@0.4.12': 100 + resolution: {integrity: sha512-P+Jn0HvKhIh1tps5n3xGrCxt+XiFWzp4kdgloyFhFmVLwjDU547DQkWx4r5Vhuiah7fRZGVSlk39R4U6SPrACg==} 101 + engines: {node: '>=18.7.0'} 102 + 103 + '@atproto/jwk-jose@0.1.11': 104 + resolution: {integrity: sha512-i4Fnr2sTBYmMmHXl7NJh8GrCH+tDQEVWrcDMDnV5DjJfkgT17wIqvojIw9SNbSL4Uf0OtfEv6AgG0A+mgh8b5Q==} 105 + 106 + '@atproto/jwk-webcrypto@0.2.0': 107 + resolution: {integrity: sha512-UmgRrrEAkWvxwhlwe30UmDOdTEFidlIzBC7C3cCbeJMcBN1x8B3KH+crXrsTqfWQBG58mXgt8wgSK3Kxs2LhFg==} 108 + 109 + '@atproto/jwk@0.6.0': 110 + resolution: {integrity: sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw==} 111 + 112 + '@atproto/lex-data@0.0.14': 113 + resolution: {integrity: sha512-53DUa9664SS76nGAMYopWsO10OH0AAdf7P/HSKB6Wzx3iqe6lk/K61QZnKxOG1LreYl5CfvIJU6eNf4txI6GlQ==} 114 + 115 + '@atproto/lex-json@0.0.14': 116 + resolution: {integrity: sha512-6lPkDKqe7teEu4WrN5q7400cvZKgYS3uwUMvzG3F9XkgVYhOwSDCtouV/nSLBbpvo3l9OP0kiigtclcNcyekww==} 117 + 118 + '@atproto/lexicon@0.4.14': 119 + resolution: {integrity: sha512-jiKpmH1QER3Gvc7JVY5brwrfo+etFoe57tKPQX/SmPwjvUsFnJAow5xLIryuBaJgFAhnTZViXKs41t//pahGHQ==} 120 + 121 + '@atproto/lexicon@0.6.2': 122 + resolution: {integrity: sha512-p3Ly6hinVZW0ETuAXZMeUGwuMm3g8HvQMQ41yyEE6AL0hAkfeKFaZKos6BdBrr6CjkpbrDZqE8M+5+QOceysMw==} 123 + 124 + '@atproto/oauth-client-node@0.3.17': 125 + resolution: {integrity: sha512-67LNuKAlC35Exe7CB5S0QCAnEqr6fKV9Nvp64jAHFof1N+Vc9Ltt1K9oekE5Ctf7dvpGByrHRF0noUw9l9sWLA==} 126 + engines: {node: '>=18.7.0'} 127 + 128 + '@atproto/oauth-client@0.6.0': 129 + resolution: {integrity: sha512-F7ZTKzFptXgyihMkd7QTdRSkrh4XqrS+qTw+V81k5Q6Bh3MB1L3ypvfSJ6v7SSUJa6XxoZYJTCahHC1e+ndE6Q==} 130 + 131 + '@atproto/oauth-types@0.6.3': 132 + resolution: {integrity: sha512-jdKuoPknJuh/WjI+mYk7agSbx9mNVMbS6Dr3k1z2YMY2oRiCQjxYBuo4MLKATbxj05nMQaZRWlHRUazoAu5Cng==} 133 + 134 + '@atproto/syntax@0.3.4': 135 + resolution: {integrity: sha512-8CNmi5DipOLaVeSMPggMe7FCksVag0aO6XZy9WflbduTKM4dFZVCs4686UeMLfGRXX+X966XgwECHoLYrovMMg==} 136 + 137 + '@atproto/syntax@0.4.3': 138 + resolution: {integrity: sha512-YoZUz40YAJr5nPwvCDWgodEOlt5IftZqPJvA0JDWjuZKD8yXddTwSzXSaKQAzGOpuM+/A3uXRtPzJJqlScc+iA==} 139 + 140 + '@atproto/syntax@0.5.2': 141 + resolution: {integrity: sha512-W41szOnkppoHr0iCUrzL8gy3OD6qmDyp1UvUgmTx2oFQfgbudpz51T/gznesiCcqiUT5obfHdx4PJ+WdlEOE7Q==} 142 + 143 + '@atproto/xrpc@0.6.12': 144 + resolution: {integrity: sha512-Ut3iISNLujlmY9Gu8sNU+SPDJDvqlVzWddU8qUr0Yae5oD4SguaUFjjhireMGhQ3M5E0KljQgDbTmnBo1kIZ3w==} 145 + 146 + '@atproto/xrpc@0.7.7': 147 + resolution: {integrity: sha512-K1ZyO/BU8JNtXX5dmPp7b5UrkLMMqpsIa/Lrj5D3Su+j1Xwq1m6QJ2XJ1AgjEjkI1v4Muzm7klianLE6XGxtmA==} 148 + 149 + '@babel/code-frame@7.26.2': 150 + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 151 + engines: {node: '>=6.9.0'} 152 + 153 + '@babel/code-frame@7.29.0': 154 + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} 155 + engines: {node: '>=6.9.0'} 156 + 157 + '@babel/compat-data@7.29.0': 158 + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} 159 + engines: {node: '>=6.9.0'} 160 + 161 + '@babel/core@7.29.0': 162 + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} 163 + engines: {node: '>=6.9.0'} 164 + 165 + '@babel/generator@7.29.1': 166 + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} 167 + engines: {node: '>=6.9.0'} 168 + 169 + '@babel/helper-compilation-targets@7.28.6': 170 + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} 171 + engines: {node: '>=6.9.0'} 172 + 173 + '@babel/helper-globals@7.28.0': 174 + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 175 + engines: {node: '>=6.9.0'} 176 + 177 + '@babel/helper-module-imports@7.18.6': 178 + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} 179 + engines: {node: '>=6.9.0'} 180 + 181 + '@babel/helper-module-imports@7.28.6': 182 + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} 183 + engines: {node: '>=6.9.0'} 184 + 185 + '@babel/helper-module-transforms@7.28.6': 186 + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} 187 + engines: {node: '>=6.9.0'} 188 + peerDependencies: 189 + '@babel/core': ^7.0.0 190 + 191 + '@babel/helper-plugin-utils@7.28.6': 192 + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} 193 + engines: {node: '>=6.9.0'} 194 + 195 + '@babel/helper-string-parser@7.27.1': 196 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 197 + engines: {node: '>=6.9.0'} 198 + 199 + '@babel/helper-validator-identifier@7.28.5': 200 + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 201 + engines: {node: '>=6.9.0'} 202 + 203 + '@babel/helper-validator-option@7.27.1': 204 + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 205 + engines: {node: '>=6.9.0'} 206 + 207 + '@babel/helpers@7.29.2': 208 + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} 209 + engines: {node: '>=6.9.0'} 210 + 211 + '@babel/parser@7.29.2': 212 + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} 213 + engines: {node: '>=6.0.0'} 214 + hasBin: true 215 + 216 + '@babel/plugin-syntax-jsx@7.28.6': 217 + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} 218 + engines: {node: '>=6.9.0'} 219 + peerDependencies: 220 + '@babel/core': ^7.0.0-0 221 + 222 + '@babel/plugin-syntax-typescript@7.28.6': 223 + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} 224 + engines: {node: '>=6.9.0'} 225 + peerDependencies: 226 + '@babel/core': ^7.0.0-0 227 + 228 + '@babel/template@7.28.6': 229 + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} 230 + engines: {node: '>=6.9.0'} 231 + 232 + '@babel/traverse@7.29.0': 233 + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} 234 + engines: {node: '>=6.9.0'} 235 + 236 + '@babel/types@7.29.0': 237 + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} 238 + engines: {node: '>=6.9.0'} 239 + 240 + '@cloudflare/kv-asset-handler@0.4.2': 241 + resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} 242 + engines: {node: '>=18.0.0'} 243 + 244 + '@deno/shim-deno-test@0.5.0': 245 + resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} 246 + 247 + '@deno/shim-deno@0.19.2': 248 + resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} 249 + 250 + '@drizzle-team/brocli@0.10.2': 251 + resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} 252 + 253 + '@esbuild-kit/core-utils@3.3.2': 254 + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} 255 + deprecated: 'Merged into tsx: https://tsx.is' 256 + 257 + '@esbuild-kit/esm-loader@2.6.5': 258 + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 259 + deprecated: 'Merged into tsx: https://tsx.is' 260 + 261 + '@esbuild/aix-ppc64@0.19.12': 262 + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 263 + engines: {node: '>=12'} 264 + cpu: [ppc64] 265 + os: [aix] 266 + 267 + '@esbuild/aix-ppc64@0.25.12': 268 + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} 269 + engines: {node: '>=18'} 270 + cpu: [ppc64] 271 + os: [aix] 272 + 273 + '@esbuild/aix-ppc64@0.27.4': 274 + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} 275 + engines: {node: '>=18'} 276 + cpu: [ppc64] 277 + os: [aix] 278 + 279 + '@esbuild/android-arm64@0.18.20': 280 + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 281 + engines: {node: '>=12'} 282 + cpu: [arm64] 283 + os: [android] 284 + 285 + '@esbuild/android-arm64@0.19.12': 286 + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 287 + engines: {node: '>=12'} 288 + cpu: [arm64] 289 + os: [android] 290 + 291 + '@esbuild/android-arm64@0.25.12': 292 + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} 293 + engines: {node: '>=18'} 294 + cpu: [arm64] 295 + os: [android] 296 + 297 + '@esbuild/android-arm64@0.27.4': 298 + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} 299 + engines: {node: '>=18'} 300 + cpu: [arm64] 301 + os: [android] 302 + 303 + '@esbuild/android-arm@0.18.20': 304 + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 305 + engines: {node: '>=12'} 306 + cpu: [arm] 307 + os: [android] 308 + 309 + '@esbuild/android-arm@0.19.12': 310 + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 311 + engines: {node: '>=12'} 312 + cpu: [arm] 313 + os: [android] 314 + 315 + '@esbuild/android-arm@0.25.12': 316 + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} 317 + engines: {node: '>=18'} 318 + cpu: [arm] 319 + os: [android] 320 + 321 + '@esbuild/android-arm@0.27.4': 322 + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} 323 + engines: {node: '>=18'} 324 + cpu: [arm] 325 + os: [android] 326 + 327 + '@esbuild/android-x64@0.18.20': 328 + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 329 + engines: {node: '>=12'} 330 + cpu: [x64] 331 + os: [android] 332 + 333 + '@esbuild/android-x64@0.19.12': 334 + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 335 + engines: {node: '>=12'} 336 + cpu: [x64] 337 + os: [android] 338 + 339 + '@esbuild/android-x64@0.25.12': 340 + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} 341 + engines: {node: '>=18'} 342 + cpu: [x64] 343 + os: [android] 344 + 345 + '@esbuild/android-x64@0.27.4': 346 + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} 347 + engines: {node: '>=18'} 348 + cpu: [x64] 349 + os: [android] 350 + 351 + '@esbuild/darwin-arm64@0.18.20': 352 + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 353 + engines: {node: '>=12'} 354 + cpu: [arm64] 355 + os: [darwin] 356 + 357 + '@esbuild/darwin-arm64@0.19.12': 358 + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 359 + engines: {node: '>=12'} 360 + cpu: [arm64] 361 + os: [darwin] 362 + 363 + '@esbuild/darwin-arm64@0.25.12': 364 + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} 365 + engines: {node: '>=18'} 366 + cpu: [arm64] 367 + os: [darwin] 368 + 369 + '@esbuild/darwin-arm64@0.27.4': 370 + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} 371 + engines: {node: '>=18'} 372 + cpu: [arm64] 373 + os: [darwin] 374 + 375 + '@esbuild/darwin-x64@0.18.20': 376 + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 377 + engines: {node: '>=12'} 378 + cpu: [x64] 379 + os: [darwin] 380 + 381 + '@esbuild/darwin-x64@0.19.12': 382 + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 383 + engines: {node: '>=12'} 384 + cpu: [x64] 385 + os: [darwin] 386 + 387 + '@esbuild/darwin-x64@0.25.12': 388 + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} 389 + engines: {node: '>=18'} 390 + cpu: [x64] 391 + os: [darwin] 392 + 393 + '@esbuild/darwin-x64@0.27.4': 394 + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} 395 + engines: {node: '>=18'} 396 + cpu: [x64] 397 + os: [darwin] 398 + 399 + '@esbuild/freebsd-arm64@0.18.20': 400 + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 401 + engines: {node: '>=12'} 402 + cpu: [arm64] 403 + os: [freebsd] 404 + 405 + '@esbuild/freebsd-arm64@0.19.12': 406 + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 407 + engines: {node: '>=12'} 408 + cpu: [arm64] 409 + os: [freebsd] 410 + 411 + '@esbuild/freebsd-arm64@0.25.12': 412 + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} 413 + engines: {node: '>=18'} 414 + cpu: [arm64] 415 + os: [freebsd] 416 + 417 + '@esbuild/freebsd-arm64@0.27.4': 418 + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} 419 + engines: {node: '>=18'} 420 + cpu: [arm64] 421 + os: [freebsd] 422 + 423 + '@esbuild/freebsd-x64@0.18.20': 424 + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 425 + engines: {node: '>=12'} 426 + cpu: [x64] 427 + os: [freebsd] 428 + 429 + '@esbuild/freebsd-x64@0.19.12': 430 + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 431 + engines: {node: '>=12'} 432 + cpu: [x64] 433 + os: [freebsd] 434 + 435 + '@esbuild/freebsd-x64@0.25.12': 436 + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} 437 + engines: {node: '>=18'} 438 + cpu: [x64] 439 + os: [freebsd] 440 + 441 + '@esbuild/freebsd-x64@0.27.4': 442 + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} 443 + engines: {node: '>=18'} 444 + cpu: [x64] 445 + os: [freebsd] 446 + 447 + '@esbuild/linux-arm64@0.18.20': 448 + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 449 + engines: {node: '>=12'} 450 + cpu: [arm64] 451 + os: [linux] 452 + 453 + '@esbuild/linux-arm64@0.19.12': 454 + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 455 + engines: {node: '>=12'} 456 + cpu: [arm64] 457 + os: [linux] 458 + 459 + '@esbuild/linux-arm64@0.25.12': 460 + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} 461 + engines: {node: '>=18'} 462 + cpu: [arm64] 463 + os: [linux] 464 + 465 + '@esbuild/linux-arm64@0.27.4': 466 + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} 467 + engines: {node: '>=18'} 468 + cpu: [arm64] 469 + os: [linux] 470 + 471 + '@esbuild/linux-arm@0.18.20': 472 + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 473 + engines: {node: '>=12'} 474 + cpu: [arm] 475 + os: [linux] 476 + 477 + '@esbuild/linux-arm@0.19.12': 478 + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 479 + engines: {node: '>=12'} 480 + cpu: [arm] 481 + os: [linux] 482 + 483 + '@esbuild/linux-arm@0.25.12': 484 + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} 485 + engines: {node: '>=18'} 486 + cpu: [arm] 487 + os: [linux] 488 + 489 + '@esbuild/linux-arm@0.27.4': 490 + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} 491 + engines: {node: '>=18'} 492 + cpu: [arm] 493 + os: [linux] 494 + 495 + '@esbuild/linux-ia32@0.18.20': 496 + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 497 + engines: {node: '>=12'} 498 + cpu: [ia32] 499 + os: [linux] 500 + 501 + '@esbuild/linux-ia32@0.19.12': 502 + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 503 + engines: {node: '>=12'} 504 + cpu: [ia32] 505 + os: [linux] 506 + 507 + '@esbuild/linux-ia32@0.25.12': 508 + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} 509 + engines: {node: '>=18'} 510 + cpu: [ia32] 511 + os: [linux] 512 + 513 + '@esbuild/linux-ia32@0.27.4': 514 + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} 515 + engines: {node: '>=18'} 516 + cpu: [ia32] 517 + os: [linux] 518 + 519 + '@esbuild/linux-loong64@0.18.20': 520 + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 521 + engines: {node: '>=12'} 522 + cpu: [loong64] 523 + os: [linux] 524 + 525 + '@esbuild/linux-loong64@0.19.12': 526 + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 527 + engines: {node: '>=12'} 528 + cpu: [loong64] 529 + os: [linux] 530 + 531 + '@esbuild/linux-loong64@0.25.12': 532 + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} 533 + engines: {node: '>=18'} 534 + cpu: [loong64] 535 + os: [linux] 536 + 537 + '@esbuild/linux-loong64@0.27.4': 538 + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} 539 + engines: {node: '>=18'} 540 + cpu: [loong64] 541 + os: [linux] 542 + 543 + '@esbuild/linux-mips64el@0.18.20': 544 + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 545 + engines: {node: '>=12'} 546 + cpu: [mips64el] 547 + os: [linux] 548 + 549 + '@esbuild/linux-mips64el@0.19.12': 550 + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 551 + engines: {node: '>=12'} 552 + cpu: [mips64el] 553 + os: [linux] 554 + 555 + '@esbuild/linux-mips64el@0.25.12': 556 + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} 557 + engines: {node: '>=18'} 558 + cpu: [mips64el] 559 + os: [linux] 560 + 561 + '@esbuild/linux-mips64el@0.27.4': 562 + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} 563 + engines: {node: '>=18'} 564 + cpu: [mips64el] 565 + os: [linux] 566 + 567 + '@esbuild/linux-ppc64@0.18.20': 568 + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 569 + engines: {node: '>=12'} 570 + cpu: [ppc64] 571 + os: [linux] 572 + 573 + '@esbuild/linux-ppc64@0.19.12': 574 + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 575 + engines: {node: '>=12'} 576 + cpu: [ppc64] 577 + os: [linux] 578 + 579 + '@esbuild/linux-ppc64@0.25.12': 580 + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} 581 + engines: {node: '>=18'} 582 + cpu: [ppc64] 583 + os: [linux] 584 + 585 + '@esbuild/linux-ppc64@0.27.4': 586 + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} 587 + engines: {node: '>=18'} 588 + cpu: [ppc64] 589 + os: [linux] 590 + 591 + '@esbuild/linux-riscv64@0.18.20': 592 + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 593 + engines: {node: '>=12'} 594 + cpu: [riscv64] 595 + os: [linux] 596 + 597 + '@esbuild/linux-riscv64@0.19.12': 598 + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 599 + engines: {node: '>=12'} 600 + cpu: [riscv64] 601 + os: [linux] 602 + 603 + '@esbuild/linux-riscv64@0.25.12': 604 + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} 605 + engines: {node: '>=18'} 606 + cpu: [riscv64] 607 + os: [linux] 608 + 609 + '@esbuild/linux-riscv64@0.27.4': 610 + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} 611 + engines: {node: '>=18'} 612 + cpu: [riscv64] 613 + os: [linux] 614 + 615 + '@esbuild/linux-s390x@0.18.20': 616 + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 617 + engines: {node: '>=12'} 618 + cpu: [s390x] 619 + os: [linux] 620 + 621 + '@esbuild/linux-s390x@0.19.12': 622 + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 623 + engines: {node: '>=12'} 624 + cpu: [s390x] 625 + os: [linux] 626 + 627 + '@esbuild/linux-s390x@0.25.12': 628 + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} 629 + engines: {node: '>=18'} 630 + cpu: [s390x] 631 + os: [linux] 632 + 633 + '@esbuild/linux-s390x@0.27.4': 634 + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} 635 + engines: {node: '>=18'} 636 + cpu: [s390x] 637 + os: [linux] 638 + 639 + '@esbuild/linux-x64@0.18.20': 640 + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 641 + engines: {node: '>=12'} 642 + cpu: [x64] 643 + os: [linux] 644 + 645 + '@esbuild/linux-x64@0.19.12': 646 + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 647 + engines: {node: '>=12'} 648 + cpu: [x64] 649 + os: [linux] 650 + 651 + '@esbuild/linux-x64@0.25.12': 652 + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} 653 + engines: {node: '>=18'} 654 + cpu: [x64] 655 + os: [linux] 656 + 657 + '@esbuild/linux-x64@0.27.4': 658 + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} 659 + engines: {node: '>=18'} 660 + cpu: [x64] 661 + os: [linux] 662 + 663 + '@esbuild/netbsd-arm64@0.25.12': 664 + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} 665 + engines: {node: '>=18'} 666 + cpu: [arm64] 667 + os: [netbsd] 668 + 669 + '@esbuild/netbsd-arm64@0.27.4': 670 + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} 671 + engines: {node: '>=18'} 672 + cpu: [arm64] 673 + os: [netbsd] 674 + 675 + '@esbuild/netbsd-x64@0.18.20': 676 + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 677 + engines: {node: '>=12'} 678 + cpu: [x64] 679 + os: [netbsd] 680 + 681 + '@esbuild/netbsd-x64@0.19.12': 682 + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 683 + engines: {node: '>=12'} 684 + cpu: [x64] 685 + os: [netbsd] 686 + 687 + '@esbuild/netbsd-x64@0.25.12': 688 + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} 689 + engines: {node: '>=18'} 690 + cpu: [x64] 691 + os: [netbsd] 692 + 693 + '@esbuild/netbsd-x64@0.27.4': 694 + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} 695 + engines: {node: '>=18'} 696 + cpu: [x64] 697 + os: [netbsd] 698 + 699 + '@esbuild/openbsd-arm64@0.25.12': 700 + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} 701 + engines: {node: '>=18'} 702 + cpu: [arm64] 703 + os: [openbsd] 704 + 705 + '@esbuild/openbsd-arm64@0.27.4': 706 + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} 707 + engines: {node: '>=18'} 708 + cpu: [arm64] 709 + os: [openbsd] 710 + 711 + '@esbuild/openbsd-x64@0.18.20': 712 + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 713 + engines: {node: '>=12'} 714 + cpu: [x64] 715 + os: [openbsd] 716 + 717 + '@esbuild/openbsd-x64@0.19.12': 718 + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 719 + engines: {node: '>=12'} 720 + cpu: [x64] 721 + os: [openbsd] 722 + 723 + '@esbuild/openbsd-x64@0.25.12': 724 + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} 725 + engines: {node: '>=18'} 726 + cpu: [x64] 727 + os: [openbsd] 728 + 729 + '@esbuild/openbsd-x64@0.27.4': 730 + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} 731 + engines: {node: '>=18'} 732 + cpu: [x64] 733 + os: [openbsd] 734 + 735 + '@esbuild/openharmony-arm64@0.25.12': 736 + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} 737 + engines: {node: '>=18'} 738 + cpu: [arm64] 739 + os: [openharmony] 740 + 741 + '@esbuild/openharmony-arm64@0.27.4': 742 + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} 743 + engines: {node: '>=18'} 744 + cpu: [arm64] 745 + os: [openharmony] 746 + 747 + '@esbuild/sunos-x64@0.18.20': 748 + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 749 + engines: {node: '>=12'} 750 + cpu: [x64] 751 + os: [sunos] 752 + 753 + '@esbuild/sunos-x64@0.19.12': 754 + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 755 + engines: {node: '>=12'} 756 + cpu: [x64] 757 + os: [sunos] 758 + 759 + '@esbuild/sunos-x64@0.25.12': 760 + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} 761 + engines: {node: '>=18'} 762 + cpu: [x64] 763 + os: [sunos] 764 + 765 + '@esbuild/sunos-x64@0.27.4': 766 + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} 767 + engines: {node: '>=18'} 768 + cpu: [x64] 769 + os: [sunos] 770 + 771 + '@esbuild/win32-arm64@0.18.20': 772 + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 773 + engines: {node: '>=12'} 774 + cpu: [arm64] 775 + os: [win32] 776 + 777 + '@esbuild/win32-arm64@0.19.12': 778 + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 779 + engines: {node: '>=12'} 780 + cpu: [arm64] 781 + os: [win32] 782 + 783 + '@esbuild/win32-arm64@0.25.12': 784 + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} 785 + engines: {node: '>=18'} 786 + cpu: [arm64] 787 + os: [win32] 788 + 789 + '@esbuild/win32-arm64@0.27.4': 790 + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} 791 + engines: {node: '>=18'} 792 + cpu: [arm64] 793 + os: [win32] 794 + 795 + '@esbuild/win32-ia32@0.18.20': 796 + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 797 + engines: {node: '>=12'} 798 + cpu: [ia32] 799 + os: [win32] 800 + 801 + '@esbuild/win32-ia32@0.19.12': 802 + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 803 + engines: {node: '>=12'} 804 + cpu: [ia32] 805 + os: [win32] 806 + 807 + '@esbuild/win32-ia32@0.25.12': 808 + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} 809 + engines: {node: '>=18'} 810 + cpu: [ia32] 811 + os: [win32] 812 + 813 + '@esbuild/win32-ia32@0.27.4': 814 + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} 815 + engines: {node: '>=18'} 816 + cpu: [ia32] 817 + os: [win32] 818 + 819 + '@esbuild/win32-x64@0.18.20': 820 + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 821 + engines: {node: '>=12'} 822 + cpu: [x64] 823 + os: [win32] 824 + 825 + '@esbuild/win32-x64@0.19.12': 826 + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 827 + engines: {node: '>=12'} 828 + cpu: [x64] 829 + os: [win32] 830 + 831 + '@esbuild/win32-x64@0.25.12': 832 + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} 833 + engines: {node: '>=18'} 834 + cpu: [x64] 835 + os: [win32] 836 + 837 + '@esbuild/win32-x64@0.27.4': 838 + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} 839 + engines: {node: '>=18'} 840 + cpu: [x64] 841 + os: [win32] 842 + 843 + '@ioredis/commands@1.5.1': 844 + resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==} 845 + 846 + '@isaacs/cliui@8.0.2': 847 + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 848 + engines: {node: '>=12'} 849 + 850 + '@isaacs/fs-minipass@4.0.1': 851 + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} 852 + engines: {node: '>=18.0.0'} 853 + 854 + '@jridgewell/gen-mapping@0.3.13': 855 + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 856 + 857 + '@jridgewell/remapping@2.3.5': 858 + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} 859 + 860 + '@jridgewell/resolve-uri@3.1.2': 861 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 862 + engines: {node: '>=6.0.0'} 863 + 864 + '@jridgewell/source-map@0.3.11': 865 + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} 866 + 867 + '@jridgewell/sourcemap-codec@1.5.5': 868 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 869 + 870 + '@jridgewell/trace-mapping@0.3.31': 871 + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 872 + 873 + '@mapbox/node-pre-gyp@2.0.3': 874 + resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} 875 + engines: {node: '>=18'} 876 + hasBin: true 877 + 878 + '@noble/curves@1.9.7': 879 + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} 880 + engines: {node: ^14.21.3 || >=16} 881 + 882 + '@noble/hashes@1.8.0': 883 + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} 884 + engines: {node: ^14.21.3 || >=16} 885 + 886 + '@nodelib/fs.scandir@2.1.5': 887 + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 888 + engines: {node: '>= 8'} 889 + 890 + '@nodelib/fs.stat@2.0.5': 891 + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 892 + engines: {node: '>= 8'} 893 + 894 + '@nodelib/fs.walk@1.2.8': 895 + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 896 + engines: {node: '>= 8'} 897 + 898 + '@parcel/watcher-android-arm64@2.5.6': 899 + resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} 900 + engines: {node: '>= 10.0.0'} 901 + cpu: [arm64] 902 + os: [android] 903 + 904 + '@parcel/watcher-darwin-arm64@2.5.6': 905 + resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} 906 + engines: {node: '>= 10.0.0'} 907 + cpu: [arm64] 908 + os: [darwin] 909 + 910 + '@parcel/watcher-darwin-x64@2.5.6': 911 + resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} 912 + engines: {node: '>= 10.0.0'} 913 + cpu: [x64] 914 + os: [darwin] 915 + 916 + '@parcel/watcher-freebsd-x64@2.5.6': 917 + resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} 918 + engines: {node: '>= 10.0.0'} 919 + cpu: [x64] 920 + os: [freebsd] 921 + 922 + '@parcel/watcher-linux-arm-glibc@2.5.6': 923 + resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} 924 + engines: {node: '>= 10.0.0'} 925 + cpu: [arm] 926 + os: [linux] 927 + 928 + '@parcel/watcher-linux-arm-musl@2.5.6': 929 + resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} 930 + engines: {node: '>= 10.0.0'} 931 + cpu: [arm] 932 + os: [linux] 933 + 934 + '@parcel/watcher-linux-arm64-glibc@2.5.6': 935 + resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} 936 + engines: {node: '>= 10.0.0'} 937 + cpu: [arm64] 938 + os: [linux] 939 + 940 + '@parcel/watcher-linux-arm64-musl@2.5.6': 941 + resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} 942 + engines: {node: '>= 10.0.0'} 943 + cpu: [arm64] 944 + os: [linux] 945 + 946 + '@parcel/watcher-linux-x64-glibc@2.5.6': 947 + resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} 948 + engines: {node: '>= 10.0.0'} 949 + cpu: [x64] 950 + os: [linux] 951 + 952 + '@parcel/watcher-linux-x64-musl@2.5.6': 953 + resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} 954 + engines: {node: '>= 10.0.0'} 955 + cpu: [x64] 956 + os: [linux] 957 + 958 + '@parcel/watcher-wasm@2.3.0': 959 + resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} 960 + engines: {node: '>= 10.0.0'} 961 + bundledDependencies: 962 + - napi-wasm 963 + 964 + '@parcel/watcher-wasm@2.5.6': 965 + resolution: {integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==} 966 + engines: {node: '>= 10.0.0'} 967 + bundledDependencies: 968 + - napi-wasm 969 + 970 + '@parcel/watcher-win32-arm64@2.5.6': 971 + resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} 972 + engines: {node: '>= 10.0.0'} 973 + cpu: [arm64] 974 + os: [win32] 975 + 976 + '@parcel/watcher-win32-ia32@2.5.6': 977 + resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} 978 + engines: {node: '>= 10.0.0'} 979 + cpu: [ia32] 980 + os: [win32] 981 + 982 + '@parcel/watcher-win32-x64@2.5.6': 983 + resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} 984 + engines: {node: '>= 10.0.0'} 985 + cpu: [x64] 986 + os: [win32] 987 + 988 + '@parcel/watcher@2.5.6': 989 + resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} 990 + engines: {node: '>= 10.0.0'} 991 + 992 + '@petamoriken/float16@3.9.3': 993 + resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==} 994 + 995 + '@pkgjs/parseargs@0.11.0': 996 + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 997 + engines: {node: '>=14'} 998 + 999 + '@poppinss/colors@4.1.6': 1000 + resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} 1001 + 1002 + '@poppinss/dumper@0.7.0': 1003 + resolution: {integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==} 1004 + 1005 + '@poppinss/exception@1.2.3': 1006 + resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} 1007 + 1008 + '@rollup/plugin-alias@6.0.0': 1009 + resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} 1010 + engines: {node: '>=20.19.0'} 1011 + peerDependencies: 1012 + rollup: '>=4.0.0' 1013 + peerDependenciesMeta: 1014 + rollup: 1015 + optional: true 1016 + 1017 + '@rollup/plugin-commonjs@29.0.2': 1018 + resolution: {integrity: sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==} 1019 + engines: {node: '>=16.0.0 || 14 >= 14.17'} 1020 + peerDependencies: 1021 + rollup: ^2.68.0||^3.0.0||^4.0.0 1022 + peerDependenciesMeta: 1023 + rollup: 1024 + optional: true 1025 + 1026 + '@rollup/plugin-inject@5.0.5': 1027 + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} 1028 + engines: {node: '>=14.0.0'} 1029 + peerDependencies: 1030 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1031 + peerDependenciesMeta: 1032 + rollup: 1033 + optional: true 1034 + 1035 + '@rollup/plugin-json@6.1.0': 1036 + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} 1037 + engines: {node: '>=14.0.0'} 1038 + peerDependencies: 1039 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1040 + peerDependenciesMeta: 1041 + rollup: 1042 + optional: true 1043 + 1044 + '@rollup/plugin-node-resolve@16.0.3': 1045 + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} 1046 + engines: {node: '>=14.0.0'} 1047 + peerDependencies: 1048 + rollup: ^2.78.0||^3.0.0||^4.0.0 1049 + peerDependenciesMeta: 1050 + rollup: 1051 + optional: true 1052 + 1053 + '@rollup/plugin-replace@6.0.3': 1054 + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} 1055 + engines: {node: '>=14.0.0'} 1056 + peerDependencies: 1057 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1058 + peerDependenciesMeta: 1059 + rollup: 1060 + optional: true 1061 + 1062 + '@rollup/plugin-terser@1.0.0': 1063 + resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} 1064 + engines: {node: '>=20.0.0'} 1065 + peerDependencies: 1066 + rollup: ^2.0.0||^3.0.0||^4.0.0 1067 + peerDependenciesMeta: 1068 + rollup: 1069 + optional: true 1070 + 1071 + '@rollup/pluginutils@5.3.0': 1072 + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} 1073 + engines: {node: '>=14.0.0'} 1074 + peerDependencies: 1075 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1076 + peerDependenciesMeta: 1077 + rollup: 1078 + optional: true 1079 + 1080 + '@rollup/rollup-android-arm-eabi@4.60.1': 1081 + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} 1082 + cpu: [arm] 1083 + os: [android] 1084 + 1085 + '@rollup/rollup-android-arm64@4.60.1': 1086 + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} 1087 + cpu: [arm64] 1088 + os: [android] 1089 + 1090 + '@rollup/rollup-darwin-arm64@4.60.1': 1091 + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} 1092 + cpu: [arm64] 1093 + os: [darwin] 1094 + 1095 + '@rollup/rollup-darwin-x64@4.60.1': 1096 + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} 1097 + cpu: [x64] 1098 + os: [darwin] 1099 + 1100 + '@rollup/rollup-freebsd-arm64@4.60.1': 1101 + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} 1102 + cpu: [arm64] 1103 + os: [freebsd] 1104 + 1105 + '@rollup/rollup-freebsd-x64@4.60.1': 1106 + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} 1107 + cpu: [x64] 1108 + os: [freebsd] 1109 + 1110 + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': 1111 + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} 1112 + cpu: [arm] 1113 + os: [linux] 1114 + 1115 + '@rollup/rollup-linux-arm-musleabihf@4.60.1': 1116 + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} 1117 + cpu: [arm] 1118 + os: [linux] 1119 + 1120 + '@rollup/rollup-linux-arm64-gnu@4.60.1': 1121 + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} 1122 + cpu: [arm64] 1123 + os: [linux] 1124 + 1125 + '@rollup/rollup-linux-arm64-musl@4.60.1': 1126 + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} 1127 + cpu: [arm64] 1128 + os: [linux] 1129 + 1130 + '@rollup/rollup-linux-loong64-gnu@4.60.1': 1131 + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} 1132 + cpu: [loong64] 1133 + os: [linux] 1134 + 1135 + '@rollup/rollup-linux-loong64-musl@4.60.1': 1136 + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} 1137 + cpu: [loong64] 1138 + os: [linux] 1139 + 1140 + '@rollup/rollup-linux-ppc64-gnu@4.60.1': 1141 + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} 1142 + cpu: [ppc64] 1143 + os: [linux] 1144 + 1145 + '@rollup/rollup-linux-ppc64-musl@4.60.1': 1146 + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} 1147 + cpu: [ppc64] 1148 + os: [linux] 1149 + 1150 + '@rollup/rollup-linux-riscv64-gnu@4.60.1': 1151 + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} 1152 + cpu: [riscv64] 1153 + os: [linux] 1154 + 1155 + '@rollup/rollup-linux-riscv64-musl@4.60.1': 1156 + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} 1157 + cpu: [riscv64] 1158 + os: [linux] 1159 + 1160 + '@rollup/rollup-linux-s390x-gnu@4.60.1': 1161 + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} 1162 + cpu: [s390x] 1163 + os: [linux] 1164 + 1165 + '@rollup/rollup-linux-x64-gnu@4.60.1': 1166 + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} 1167 + cpu: [x64] 1168 + os: [linux] 1169 + 1170 + '@rollup/rollup-linux-x64-musl@4.60.1': 1171 + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} 1172 + cpu: [x64] 1173 + os: [linux] 1174 + 1175 + '@rollup/rollup-openbsd-x64@4.60.1': 1176 + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} 1177 + cpu: [x64] 1178 + os: [openbsd] 1179 + 1180 + '@rollup/rollup-openharmony-arm64@4.60.1': 1181 + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} 1182 + cpu: [arm64] 1183 + os: [openharmony] 1184 + 1185 + '@rollup/rollup-win32-arm64-msvc@4.60.1': 1186 + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} 1187 + cpu: [arm64] 1188 + os: [win32] 1189 + 1190 + '@rollup/rollup-win32-ia32-msvc@4.60.1': 1191 + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} 1192 + cpu: [ia32] 1193 + os: [win32] 1194 + 1195 + '@rollup/rollup-win32-x64-gnu@4.60.1': 1196 + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} 1197 + cpu: [x64] 1198 + os: [win32] 1199 + 1200 + '@rollup/rollup-win32-x64-msvc@4.60.1': 1201 + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} 1202 + cpu: [x64] 1203 + os: [win32] 1204 + 1205 + '@shikijs/core@1.29.2': 1206 + resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} 1207 + 1208 + '@shikijs/engine-javascript@1.29.2': 1209 + resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} 1210 + 1211 + '@shikijs/engine-oniguruma@1.29.2': 1212 + resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} 1213 + 1214 + '@shikijs/langs@1.29.2': 1215 + resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} 1216 + 1217 + '@shikijs/themes@1.29.2': 1218 + resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} 1219 + 1220 + '@shikijs/types@1.29.2': 1221 + resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} 1222 + 1223 + '@shikijs/vscode-textmate@10.0.2': 1224 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 1225 + 1226 + '@sindresorhus/is@7.2.0': 1227 + resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} 1228 + engines: {node: '>=18'} 1229 + 1230 + '@sindresorhus/merge-streams@4.0.0': 1231 + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} 1232 + engines: {node: '>=18'} 1233 + 1234 + '@solidjs/meta@0.29.4': 1235 + resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==} 1236 + peerDependencies: 1237 + solid-js: '>=1.8.4' 1238 + 1239 + '@solidjs/router@0.15.4': 1240 + resolution: {integrity: sha512-WOpgg9a9T638cR+5FGbFi/IV4l2FpmBs1GpIMSPa0Ce9vyJN7Wts+X2PqMf9IYn0zUj2MlSJtm1gp7/HI/n5TQ==} 1241 + peerDependencies: 1242 + solid-js: ^1.8.6 1243 + 1244 + '@solidjs/start@1.3.2': 1245 + resolution: {integrity: sha512-tasDl3utVbtP0rr4InB3ntBIFV2upvEiFrOOCkRrAA3yBfjx9elpxnc94sJQXo65PNYdAAAkPIC6h93vLrtwHg==} 1246 + peerDependencies: 1247 + vinxi: ^0.5.7 1248 + 1249 + '@speed-highlight/core@1.2.15': 1250 + resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} 1251 + 1252 + '@tanstack/directive-functions-plugin@1.121.21': 1253 + resolution: {integrity: sha512-B9z/HbF7gJBaRHieyX7f2uQ4LpLLAVAEutBZipH6w+CYD6RHRJvSVPzECGHF7icFhNWTiJQL2QR6K07s59yzEw==} 1254 + engines: {node: '>=12'} 1255 + peerDependencies: 1256 + vite: '>=6.0.0' 1257 + 1258 + '@tanstack/router-utils@1.161.6': 1259 + resolution: {integrity: sha512-nRcYw+w2OEgK6VfjirYvGyPLOK+tZQz1jkYcmH5AjMamQ9PycnlxZF2aEZtPpNoUsaceX2bHptn6Ub5hGXqNvw==} 1260 + engines: {node: '>=20.19'} 1261 + 1262 + '@tanstack/server-functions-plugin@1.121.21': 1263 + resolution: {integrity: sha512-a05fzK+jBGacsSAc1vE8an7lpBh4H0PyIEcivtEyHLomgSeElAJxm9E2It/0nYRZ5Lh23m0okbhzJNaYWZpAOg==} 1264 + engines: {node: '>=12'} 1265 + 1266 + '@types/babel__core@7.20.5': 1267 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 1268 + 1269 + '@types/babel__generator@7.27.0': 1270 + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 1271 + 1272 + '@types/babel__template@7.4.4': 1273 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 1274 + 1275 + '@types/babel__traverse@7.28.0': 1276 + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 1277 + 1278 + '@types/braces@3.0.5': 1279 + resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==} 1280 + 1281 + '@types/estree@1.0.8': 1282 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 1283 + 1284 + '@types/hast@3.0.4': 1285 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 1286 + 1287 + '@types/mdast@4.0.4': 1288 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 1289 + 1290 + '@types/micromatch@4.0.10': 1291 + resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==} 1292 + 1293 + '@types/node@25.5.0': 1294 + resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} 1295 + 1296 + '@types/resolve@1.20.2': 1297 + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 1298 + 1299 + '@types/unist@3.0.3': 1300 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 1301 + 1302 + '@ungap/structured-clone@1.3.0': 1303 + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 1304 + 1305 + '@vercel/nft@1.5.0': 1306 + resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} 1307 + engines: {node: '>=20'} 1308 + hasBin: true 1309 + 1310 + '@vinxi/listhen@1.5.6': 1311 + resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} 1312 + hasBin: true 1313 + 1314 + '@vinxi/plugin-directives@0.5.1': 1315 + resolution: {integrity: sha512-pH/KIVBvBt7z7cXrUH/9uaqcdxjegFC7+zvkZkdOyWzs+kQD5KPf3cl8kC+5ayzXHT+OMlhGhyitytqN3cGmHg==} 1316 + peerDependencies: 1317 + vinxi: ^0.5.5 1318 + 1319 + '@vinxi/server-components@0.5.1': 1320 + resolution: {integrity: sha512-0BsG95qac3dkhfdRZxqzqYWJE4NvPL7ILlV43B6K6ho1etXWB2e5b0IxsUAUbyqpqiXM7mSRivojuXjb2G4OsQ==} 1321 + peerDependencies: 1322 + vinxi: ^0.5.5 1323 + 1324 + abbrev@3.0.1: 1325 + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} 1326 + engines: {node: ^18.17.0 || >=20.5.0} 1327 + 1328 + abort-controller@3.0.0: 1329 + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 1330 + engines: {node: '>=6.5'} 1331 + 1332 + acorn-import-attributes@1.9.5: 1333 + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} 1334 + peerDependencies: 1335 + acorn: ^8 1336 + 1337 + acorn-jsx@5.3.2: 1338 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1339 + peerDependencies: 1340 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1341 + 1342 + acorn-loose@8.5.2: 1343 + resolution: {integrity: sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==} 1344 + engines: {node: '>=0.4.0'} 1345 + 1346 + acorn-typescript@1.4.13: 1347 + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} 1348 + peerDependencies: 1349 + acorn: '>=8.9.0' 1350 + 1351 + acorn@8.16.0: 1352 + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} 1353 + engines: {node: '>=0.4.0'} 1354 + hasBin: true 1355 + 1356 + agent-base@7.1.4: 1357 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 1358 + engines: {node: '>= 14'} 1359 + 1360 + ansi-align@3.0.1: 1361 + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 1362 + 1363 + ansi-regex@5.0.1: 1364 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1365 + engines: {node: '>=8'} 1366 + 1367 + ansi-regex@6.2.2: 1368 + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 1369 + engines: {node: '>=12'} 1370 + 1371 + ansi-styles@4.3.0: 1372 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1373 + engines: {node: '>=8'} 1374 + 1375 + ansi-styles@6.2.3: 1376 + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 1377 + engines: {node: '>=12'} 1378 + 1379 + ansis@4.2.0: 1380 + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 1381 + engines: {node: '>=14'} 1382 + 1383 + anymatch@3.1.3: 1384 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1385 + engines: {node: '>= 8'} 1386 + 1387 + archiver-utils@5.0.2: 1388 + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} 1389 + engines: {node: '>= 14'} 1390 + 1391 + archiver@7.0.1: 1392 + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} 1393 + engines: {node: '>= 14'} 1394 + 1395 + ast-types@0.16.1: 1396 + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} 1397 + engines: {node: '>=4'} 1398 + 1399 + astring@1.9.0: 1400 + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 1401 + hasBin: true 1402 + 1403 + async-sema@3.1.1: 1404 + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} 1405 + 1406 + async@3.2.6: 1407 + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 1408 + 1409 + await-lock@2.2.2: 1410 + resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 1411 + 1412 + b4a@1.8.0: 1413 + resolution: {integrity: sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==} 1414 + peerDependencies: 1415 + react-native-b4a: '*' 1416 + peerDependenciesMeta: 1417 + react-native-b4a: 1418 + optional: true 1419 + 1420 + babel-dead-code-elimination@1.0.12: 1421 + resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} 1422 + 1423 + babel-plugin-jsx-dom-expressions@0.40.6: 1424 + resolution: {integrity: sha512-v3P1MW46Lm7VMpAkq0QfyzLWWkC8fh+0aE5Km4msIgDx5kjenHU0pF2s+4/NH8CQn/kla6+Hvws+2AF7bfV5qQ==} 1425 + peerDependencies: 1426 + '@babel/core': ^7.20.12 1427 + 1428 + babel-preset-solid@1.9.12: 1429 + resolution: {integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==} 1430 + peerDependencies: 1431 + '@babel/core': ^7.0.0 1432 + solid-js: ^1.9.12 1433 + peerDependenciesMeta: 1434 + solid-js: 1435 + optional: true 1436 + 1437 + balanced-match@1.0.2: 1438 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1439 + 1440 + balanced-match@4.0.4: 1441 + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} 1442 + engines: {node: 18 || 20 || >=22} 1443 + 1444 + bare-events@2.8.2: 1445 + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} 1446 + peerDependencies: 1447 + bare-abort-controller: '*' 1448 + peerDependenciesMeta: 1449 + bare-abort-controller: 1450 + optional: true 1451 + 1452 + bare-fs@4.5.6: 1453 + resolution: {integrity: sha512-1QovqDrR80Pmt5HPAsMsXTCFcDYr+NSUKW6nd6WO5v0JBmnItc/irNRzm2KOQ5oZ69P37y+AMujNyNtG+1Rggw==} 1454 + engines: {bare: '>=1.16.0'} 1455 + peerDependencies: 1456 + bare-buffer: '*' 1457 + peerDependenciesMeta: 1458 + bare-buffer: 1459 + optional: true 1460 + 1461 + bare-os@3.8.6: 1462 + resolution: {integrity: sha512-l8xaNWWb/bXuzgsrlF5jaa5QYDJ9S0ddd54cP6CH+081+5iPrbJiCfBWQqrWYzmUhCbsH+WR6qxo9MeHVCr0MQ==} 1463 + engines: {bare: '>=1.14.0'} 1464 + 1465 + bare-path@3.0.0: 1466 + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} 1467 + 1468 + bare-stream@2.11.0: 1469 + resolution: {integrity: sha512-Y/+iQ49fL3rIn6w/AVxI/2+BRrpmzJvdWt5Jv8Za6Ngqc6V227c+pYjYYgLdpR3MwQ9ObVXD0ZrqoBztakM0rw==} 1470 + peerDependencies: 1471 + bare-abort-controller: '*' 1472 + bare-buffer: '*' 1473 + bare-events: '*' 1474 + peerDependenciesMeta: 1475 + bare-abort-controller: 1476 + optional: true 1477 + bare-buffer: 1478 + optional: true 1479 + bare-events: 1480 + optional: true 1481 + 1482 + bare-url@2.4.0: 1483 + resolution: {integrity: sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==} 1484 + 1485 + base64-js@1.5.1: 1486 + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 1487 + 1488 + baseline-browser-mapping@2.10.13: 1489 + resolution: {integrity: sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==} 1490 + engines: {node: '>=6.0.0'} 1491 + hasBin: true 1492 + 1493 + bindings@1.5.0: 1494 + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 1495 + 1496 + boxen@8.0.1: 1497 + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 1498 + engines: {node: '>=18'} 1499 + 1500 + brace-expansion@2.0.3: 1501 + resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} 1502 + 1503 + brace-expansion@5.0.5: 1504 + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} 1505 + engines: {node: 18 || 20 || >=22} 1506 + 1507 + braces@3.0.3: 1508 + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 1509 + engines: {node: '>=8'} 1510 + 1511 + browserslist@4.28.2: 1512 + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} 1513 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1514 + hasBin: true 1515 + 1516 + buffer-crc32@1.0.0: 1517 + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} 1518 + engines: {node: '>=8.0.0'} 1519 + 1520 + buffer-from@1.1.2: 1521 + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1522 + 1523 + buffer@6.0.3: 1524 + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 1525 + 1526 + bundle-name@4.1.0: 1527 + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} 1528 + engines: {node: '>=18'} 1529 + 1530 + c12@3.3.3: 1531 + resolution: {integrity: sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==} 1532 + peerDependencies: 1533 + magicast: '*' 1534 + peerDependenciesMeta: 1535 + magicast: 1536 + optional: true 1537 + 1538 + camelcase@8.0.0: 1539 + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} 1540 + engines: {node: '>=16'} 1541 + 1542 + caniuse-lite@1.0.30001782: 1543 + resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==} 1544 + 1545 + ccount@2.0.1: 1546 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 1547 + 1548 + chalk@5.6.2: 1549 + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 1550 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1551 + 1552 + character-entities-html4@2.1.0: 1553 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 1554 + 1555 + character-entities-legacy@3.0.0: 1556 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 1557 + 1558 + chokidar@4.0.3: 1559 + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 1560 + engines: {node: '>= 14.16.0'} 1561 + 1562 + chokidar@5.0.0: 1563 + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} 1564 + engines: {node: '>= 20.19.0'} 1565 + 1566 + chownr@3.0.0: 1567 + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} 1568 + engines: {node: '>=18'} 1569 + 1570 + citty@0.1.6: 1571 + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} 1572 + 1573 + citty@0.2.1: 1574 + resolution: {integrity: sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==} 1575 + 1576 + cli-boxes@3.0.0: 1577 + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 1578 + engines: {node: '>=10'} 1579 + 1580 + clipboardy@4.0.0: 1581 + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} 1582 + engines: {node: '>=18'} 1583 + 1584 + cliui@9.0.1: 1585 + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} 1586 + engines: {node: '>=20'} 1587 + 1588 + cluster-key-slot@1.1.2: 1589 + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} 1590 + engines: {node: '>=0.10.0'} 1591 + 1592 + color-convert@2.0.1: 1593 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1594 + engines: {node: '>=7.0.0'} 1595 + 1596 + color-name@1.1.4: 1597 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1598 + 1599 + comma-separated-tokens@2.0.3: 1600 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 1601 + 1602 + commander@2.20.3: 1603 + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 1604 + 1605 + commondir@1.0.1: 1606 + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 1607 + 1608 + compatx@0.2.0: 1609 + resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} 1610 + 1611 + compress-commons@6.0.2: 1612 + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} 1613 + engines: {node: '>= 14'} 1614 + 1615 + confbox@0.1.8: 1616 + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 1617 + 1618 + confbox@0.2.4: 1619 + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} 1620 + 1621 + consola@3.4.2: 1622 + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} 1623 + engines: {node: ^14.18.0 || >=16.10.0} 1624 + 1625 + convert-source-map@2.0.0: 1626 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1627 + 1628 + cookie-es@1.2.2: 1629 + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} 1630 + 1631 + cookie-es@2.0.0: 1632 + resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} 1633 + 1634 + cookie-es@3.1.1: 1635 + resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} 1636 + 1637 + core-js@3.49.0: 1638 + resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} 1639 + 1640 + core-util-is@1.0.3: 1641 + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 1642 + 1643 + crc-32@1.2.2: 1644 + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} 1645 + engines: {node: '>=0.8'} 1646 + hasBin: true 1647 + 1648 + crc32-stream@6.0.0: 1649 + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} 1650 + engines: {node: '>= 14'} 1651 + 1652 + croner@10.0.1: 1653 + resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} 1654 + engines: {node: '>=18.0'} 1655 + 1656 + cross-spawn@7.0.6: 1657 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1658 + engines: {node: '>= 8'} 1659 + 1660 + crossws@0.3.5: 1661 + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} 1662 + 1663 + csstype@3.2.3: 1664 + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} 1665 + 1666 + dax-sh@0.43.2: 1667 + resolution: {integrity: sha512-uULa1sSIHgXKGCqJ/pA0zsnzbHlVnuq7g8O2fkHokWFNwEGIhh5lAJlxZa1POG5En5ba7AU4KcBAvGQWMMf8rg==} 1668 + deprecated: This package has moved to simply be 'dax' instead of 'dax-sh' 1669 + 1670 + db0@0.3.4: 1671 + resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} 1672 + peerDependencies: 1673 + '@electric-sql/pglite': '*' 1674 + '@libsql/client': '*' 1675 + better-sqlite3: '*' 1676 + drizzle-orm: '*' 1677 + mysql2: '*' 1678 + sqlite3: '*' 1679 + peerDependenciesMeta: 1680 + '@electric-sql/pglite': 1681 + optional: true 1682 + '@libsql/client': 1683 + optional: true 1684 + better-sqlite3: 1685 + optional: true 1686 + drizzle-orm: 1687 + optional: true 1688 + mysql2: 1689 + optional: true 1690 + sqlite3: 1691 + optional: true 1692 + 1693 + debug@2.6.9: 1694 + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1695 + peerDependencies: 1696 + supports-color: '*' 1697 + peerDependenciesMeta: 1698 + supports-color: 1699 + optional: true 1700 + 1701 + debug@4.4.3: 1702 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 1703 + engines: {node: '>=6.0'} 1704 + peerDependencies: 1705 + supports-color: '*' 1706 + peerDependenciesMeta: 1707 + supports-color: 1708 + optional: true 1709 + 1710 + deepmerge@4.3.1: 1711 + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 1712 + engines: {node: '>=0.10.0'} 1713 + 1714 + default-browser-id@5.0.1: 1715 + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} 1716 + engines: {node: '>=18'} 1717 + 1718 + default-browser@5.5.0: 1719 + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} 1720 + engines: {node: '>=18'} 1721 + 1722 + define-lazy-prop@3.0.0: 1723 + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 1724 + engines: {node: '>=12'} 1725 + 1726 + defu@6.1.4: 1727 + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1728 + 1729 + denque@2.1.0: 1730 + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} 1731 + engines: {node: '>=0.10'} 1732 + 1733 + depd@2.0.0: 1734 + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 1735 + engines: {node: '>= 0.8'} 1736 + 1737 + dequal@2.0.3: 1738 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1739 + engines: {node: '>=6'} 1740 + 1741 + destr@2.0.5: 1742 + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 1743 + 1744 + destroy@1.2.0: 1745 + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 1746 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 1747 + 1748 + detect-libc@2.1.2: 1749 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 1750 + engines: {node: '>=8'} 1751 + 1752 + devlop@1.1.0: 1753 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 1754 + 1755 + diff@8.0.4: 1756 + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} 1757 + engines: {node: '>=0.3.1'} 1758 + 1759 + dot-prop@10.1.0: 1760 + resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} 1761 + engines: {node: '>=20'} 1762 + 1763 + dotenv@17.3.1: 1764 + resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} 1765 + engines: {node: '>=12'} 1766 + 1767 + drizzle-kit@0.30.6: 1768 + resolution: {integrity: sha512-U4wWit0fyZuGuP7iNmRleQyK2V8wCuv57vf5l3MnG4z4fzNTjY/U13M8owyQ5RavqvqxBifWORaR3wIUzlN64g==} 1769 + hasBin: true 1770 + 1771 + drizzle-orm@0.39.3: 1772 + resolution: {integrity: sha512-EZ8ZpYvDIvKU9C56JYLOmUskazhad+uXZCTCRN4OnRMsL+xAJ05dv1eCpAG5xzhsm1hqiuC5kAZUCS924u2DTw==} 1773 + peerDependencies: 1774 + '@aws-sdk/client-rds-data': '>=3' 1775 + '@cloudflare/workers-types': '>=4' 1776 + '@electric-sql/pglite': '>=0.2.0' 1777 + '@libsql/client': '>=0.10.0' 1778 + '@libsql/client-wasm': '>=0.10.0' 1779 + '@neondatabase/serverless': '>=0.10.0' 1780 + '@op-engineering/op-sqlite': '>=2' 1781 + '@opentelemetry/api': ^1.4.1 1782 + '@planetscale/database': '>=1' 1783 + '@prisma/client': '*' 1784 + '@tidbcloud/serverless': '*' 1785 + '@types/better-sqlite3': '*' 1786 + '@types/pg': '*' 1787 + '@types/sql.js': '*' 1788 + '@vercel/postgres': '>=0.8.0' 1789 + '@xata.io/client': '*' 1790 + better-sqlite3: '>=7' 1791 + bun-types: '*' 1792 + expo-sqlite: '>=14.0.0' 1793 + knex: '*' 1794 + kysely: '*' 1795 + mysql2: '>=2' 1796 + pg: '>=8' 1797 + postgres: '>=3' 1798 + prisma: '*' 1799 + sql.js: '>=1' 1800 + sqlite3: '>=5' 1801 + peerDependenciesMeta: 1802 + '@aws-sdk/client-rds-data': 1803 + optional: true 1804 + '@cloudflare/workers-types': 1805 + optional: true 1806 + '@electric-sql/pglite': 1807 + optional: true 1808 + '@libsql/client': 1809 + optional: true 1810 + '@libsql/client-wasm': 1811 + optional: true 1812 + '@neondatabase/serverless': 1813 + optional: true 1814 + '@op-engineering/op-sqlite': 1815 + optional: true 1816 + '@opentelemetry/api': 1817 + optional: true 1818 + '@planetscale/database': 1819 + optional: true 1820 + '@prisma/client': 1821 + optional: true 1822 + '@tidbcloud/serverless': 1823 + optional: true 1824 + '@types/better-sqlite3': 1825 + optional: true 1826 + '@types/pg': 1827 + optional: true 1828 + '@types/sql.js': 1829 + optional: true 1830 + '@vercel/postgres': 1831 + optional: true 1832 + '@xata.io/client': 1833 + optional: true 1834 + better-sqlite3: 1835 + optional: true 1836 + bun-types: 1837 + optional: true 1838 + expo-sqlite: 1839 + optional: true 1840 + knex: 1841 + optional: true 1842 + kysely: 1843 + optional: true 1844 + mysql2: 1845 + optional: true 1846 + pg: 1847 + optional: true 1848 + postgres: 1849 + optional: true 1850 + prisma: 1851 + optional: true 1852 + sql.js: 1853 + optional: true 1854 + sqlite3: 1855 + optional: true 1856 + 1857 + duplexer@0.1.2: 1858 + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} 1859 + 1860 + eastasianwidth@0.2.0: 1861 + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1862 + 1863 + ee-first@1.1.1: 1864 + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 1865 + 1866 + electron-to-chromium@1.5.329: 1867 + resolution: {integrity: sha512-/4t+AS1l4S3ZC0Ja7PHFIWeBIxGA3QGqV8/yKsP36v7NcyUCl+bIcmw6s5zVuMIECWwBrAK/6QLzTmbJChBboQ==} 1868 + 1869 + emoji-regex-xs@1.0.0: 1870 + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} 1871 + 1872 + emoji-regex@10.6.0: 1873 + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} 1874 + 1875 + emoji-regex@8.0.0: 1876 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1877 + 1878 + emoji-regex@9.2.2: 1879 + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1880 + 1881 + encodeurl@2.0.0: 1882 + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} 1883 + engines: {node: '>= 0.8'} 1884 + 1885 + entities@6.0.1: 1886 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 1887 + engines: {node: '>=0.12'} 1888 + 1889 + env-paths@3.0.0: 1890 + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} 1891 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1892 + 1893 + error-stack-parser-es@1.0.5: 1894 + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} 1895 + 1896 + error-stack-parser@2.1.4: 1897 + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} 1898 + 1899 + es-module-lexer@1.7.0: 1900 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1901 + 1902 + esbuild-register@3.6.0: 1903 + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} 1904 + peerDependencies: 1905 + esbuild: '>=0.12 <1' 1906 + 1907 + esbuild@0.18.20: 1908 + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 1909 + engines: {node: '>=12'} 1910 + hasBin: true 1911 + 1912 + esbuild@0.19.12: 1913 + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1914 + engines: {node: '>=12'} 1915 + hasBin: true 1916 + 1917 + esbuild@0.25.12: 1918 + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} 1919 + engines: {node: '>=18'} 1920 + hasBin: true 1921 + 1922 + esbuild@0.27.4: 1923 + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} 1924 + engines: {node: '>=18'} 1925 + hasBin: true 1926 + 1927 + escalade@3.2.0: 1928 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1929 + engines: {node: '>=6'} 1930 + 1931 + escape-html@1.0.3: 1932 + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1933 + 1934 + escape-string-regexp@5.0.0: 1935 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1936 + engines: {node: '>=12'} 1937 + 1938 + esprima@4.0.1: 1939 + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1940 + engines: {node: '>=4'} 1941 + hasBin: true 1942 + 1943 + estree-walker@2.0.2: 1944 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1945 + 1946 + estree-walker@3.0.3: 1947 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1948 + 1949 + etag@1.8.1: 1950 + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1951 + engines: {node: '>= 0.6'} 1952 + 1953 + event-target-shim@5.0.1: 1954 + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 1955 + engines: {node: '>=6'} 1956 + 1957 + eventemitter3@4.0.7: 1958 + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 1959 + 1960 + events-universal@1.0.1: 1961 + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} 1962 + 1963 + events@3.3.0: 1964 + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1965 + engines: {node: '>=0.8.x'} 1966 + 1967 + execa@8.0.1: 1968 + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 1969 + engines: {node: '>=16.17'} 1970 + 1971 + exsolve@1.0.8: 1972 + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} 1973 + 1974 + fast-fifo@1.3.2: 1975 + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 1976 + 1977 + fast-glob@3.3.3: 1978 + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1979 + engines: {node: '>=8.6.0'} 1980 + 1981 + fastq@1.20.1: 1982 + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} 1983 + 1984 + fdir@6.5.0: 1985 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 1986 + engines: {node: '>=12.0.0'} 1987 + peerDependencies: 1988 + picomatch: ^3 || ^4 1989 + peerDependenciesMeta: 1990 + picomatch: 1991 + optional: true 1992 + 1993 + file-uri-to-path@1.0.0: 1994 + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 1995 + 1996 + fill-range@7.1.1: 1997 + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1998 + engines: {node: '>=8'} 1999 + 2000 + follow-redirects@1.15.11: 2001 + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} 2002 + engines: {node: '>=4.0'} 2003 + peerDependencies: 2004 + debug: '*' 2005 + peerDependenciesMeta: 2006 + debug: 2007 + optional: true 2008 + 2009 + foreground-child@3.3.1: 2010 + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 2011 + engines: {node: '>=14'} 2012 + 2013 + fresh@0.5.2: 2014 + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 2015 + engines: {node: '>= 0.6'} 2016 + 2017 + fresh@2.0.0: 2018 + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} 2019 + engines: {node: '>= 0.8'} 2020 + 2021 + fsevents@2.3.3: 2022 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2023 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2024 + os: [darwin] 2025 + 2026 + function-bind@1.1.2: 2027 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2028 + 2029 + gel@2.2.0: 2030 + resolution: {integrity: sha512-q0ma7z2swmoamHQusey8ayo8+ilVdzDt4WTxSPzq/yRqvucWRfymRVMvNgmSC0XK7eNjjEZEcplxpgaNojKdmQ==} 2031 + engines: {node: '>= 18.0.0'} 2032 + hasBin: true 2033 + 2034 + gensync@1.0.0-beta.2: 2035 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 2036 + engines: {node: '>=6.9.0'} 2037 + 2038 + get-caller-file@2.0.5: 2039 + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2040 + engines: {node: 6.* || 8.* || >= 10.*} 2041 + 2042 + get-east-asian-width@1.5.0: 2043 + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} 2044 + engines: {node: '>=18'} 2045 + 2046 + get-port-please@3.2.0: 2047 + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} 2048 + 2049 + get-stream@8.0.1: 2050 + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 2051 + engines: {node: '>=16'} 2052 + 2053 + get-tsconfig@4.13.7: 2054 + resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} 2055 + 2056 + giget@2.0.0: 2057 + resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} 2058 + hasBin: true 2059 + 2060 + glob-parent@5.1.2: 2061 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2062 + engines: {node: '>= 6'} 2063 + 2064 + glob@10.5.0: 2065 + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} 2066 + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me 2067 + hasBin: true 2068 + 2069 + glob@13.0.6: 2070 + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} 2071 + engines: {node: 18 || 20 || >=22} 2072 + 2073 + globby@16.2.0: 2074 + resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} 2075 + engines: {node: '>=20'} 2076 + 2077 + graceful-fs@4.2.11: 2078 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2079 + 2080 + gzip-size@7.0.0: 2081 + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} 2082 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2083 + 2084 + h3@1.15.10: 2085 + resolution: {integrity: sha512-YzJeWSkDZxAhvmp8dexjRK5hxziRO7I9m0N53WhvYL5NiWfkUkzssVzY9jvGu0HBoLFW6+duYmNSn6MaZBCCtg==} 2086 + 2087 + h3@1.15.3: 2088 + resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} 2089 + 2090 + hasown@2.0.2: 2091 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 2092 + engines: {node: '>= 0.4'} 2093 + 2094 + hast-util-to-html@9.0.5: 2095 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 2096 + 2097 + hast-util-whitespace@3.0.0: 2098 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 2099 + 2100 + hookable@5.5.3: 2101 + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 2102 + 2103 + html-entities@2.3.3: 2104 + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} 2105 + 2106 + html-to-image@1.11.13: 2107 + resolution: {integrity: sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg==} 2108 + 2109 + html-void-elements@3.0.0: 2110 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 2111 + 2112 + http-errors@2.0.1: 2113 + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} 2114 + engines: {node: '>= 0.8'} 2115 + 2116 + http-proxy@1.18.1: 2117 + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} 2118 + engines: {node: '>=8.0.0'} 2119 + 2120 + http-shutdown@1.2.2: 2121 + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} 2122 + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} 2123 + 2124 + https-proxy-agent@7.0.6: 2125 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 2126 + engines: {node: '>= 14'} 2127 + 2128 + httpxy@0.3.1: 2129 + resolution: {integrity: sha512-XjG/CEoofEisMrnFr0D6U6xOZ4mRfnwcYQ9qvvnT4lvnX8BoeA3x3WofB75D+vZwpaobFVkBIHrZzoK40w8XSw==} 2130 + 2131 + human-signals@5.0.0: 2132 + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2133 + engines: {node: '>=16.17.0'} 2134 + 2135 + ieee754@1.2.1: 2136 + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 2137 + 2138 + ignore@7.0.5: 2139 + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 2140 + engines: {node: '>= 4'} 2141 + 2142 + inherits@2.0.4: 2143 + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2144 + 2145 + ioredis@5.10.1: 2146 + resolution: {integrity: sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==} 2147 + engines: {node: '>=12.22.0'} 2148 + 2149 + ipaddr.js@2.3.0: 2150 + resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} 2151 + engines: {node: '>= 10'} 2152 + 2153 + iron-webcrypto@1.2.1: 2154 + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} 2155 + 2156 + is-core-module@2.16.1: 2157 + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 2158 + engines: {node: '>= 0.4'} 2159 + 2160 + is-docker@3.0.0: 2161 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 2162 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2163 + hasBin: true 2164 + 2165 + is-extglob@2.1.1: 2166 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2167 + engines: {node: '>=0.10.0'} 2168 + 2169 + is-fullwidth-code-point@3.0.0: 2170 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2171 + engines: {node: '>=8'} 2172 + 2173 + is-glob@4.0.3: 2174 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2175 + engines: {node: '>=0.10.0'} 2176 + 2177 + is-in-ssh@1.0.0: 2178 + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} 2179 + engines: {node: '>=20'} 2180 + 2181 + is-inside-container@1.0.0: 2182 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 2183 + engines: {node: '>=14.16'} 2184 + hasBin: true 2185 + 2186 + is-module@1.0.0: 2187 + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 2188 + 2189 + is-number@7.0.0: 2190 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2191 + engines: {node: '>=0.12.0'} 2192 + 2193 + is-path-inside@4.0.0: 2194 + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} 2195 + engines: {node: '>=12'} 2196 + 2197 + is-reference@1.2.1: 2198 + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 2199 + 2200 + is-stream@2.0.1: 2201 + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2202 + engines: {node: '>=8'} 2203 + 2204 + is-stream@3.0.0: 2205 + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2206 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2207 + 2208 + is-what@4.1.16: 2209 + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 2210 + engines: {node: '>=12.13'} 2211 + 2212 + is-wsl@3.1.1: 2213 + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} 2214 + engines: {node: '>=16'} 2215 + 2216 + is64bit@2.0.0: 2217 + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} 2218 + engines: {node: '>=18'} 2219 + 2220 + isarray@1.0.0: 2221 + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 2222 + 2223 + isexe@2.0.0: 2224 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2225 + 2226 + isexe@3.1.5: 2227 + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} 2228 + engines: {node: '>=18'} 2229 + 2230 + iso-datestring-validator@2.2.2: 2231 + resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==} 2232 + 2233 + jackspeak@3.4.3: 2234 + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 2235 + 2236 + jiti@1.21.7: 2237 + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 2238 + hasBin: true 2239 + 2240 + jiti@2.6.1: 2241 + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 2242 + hasBin: true 2243 + 2244 + jose@5.10.0: 2245 + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} 2246 + 2247 + jose@6.2.2: 2248 + resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} 2249 + 2250 + js-tokens@4.0.0: 2251 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2252 + 2253 + js-tokens@9.0.1: 2254 + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 2255 + 2256 + jsesc@3.1.0: 2257 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 2258 + engines: {node: '>=6'} 2259 + hasBin: true 2260 + 2261 + json5@2.2.3: 2262 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 2263 + engines: {node: '>=6'} 2264 + hasBin: true 2265 + 2266 + kleur@4.1.5: 2267 + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 2268 + engines: {node: '>=6'} 2269 + 2270 + klona@2.0.6: 2271 + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} 2272 + engines: {node: '>= 8'} 2273 + 2274 + knitwork@1.3.0: 2275 + resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} 2276 + 2277 + lazystream@1.0.1: 2278 + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} 2279 + engines: {node: '>= 0.6.3'} 2280 + 2281 + listhen@1.9.0: 2282 + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} 2283 + hasBin: true 2284 + 2285 + local-pkg@1.1.2: 2286 + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} 2287 + engines: {node: '>=14'} 2288 + 2289 + lodash.defaults@4.2.0: 2290 + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} 2291 + 2292 + lodash.isarguments@3.1.0: 2293 + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} 2294 + 2295 + lodash@4.17.23: 2296 + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} 2297 + 2298 + lru-cache@10.4.3: 2299 + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 2300 + 2301 + lru-cache@11.2.7: 2302 + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} 2303 + engines: {node: 20 || >=22} 2304 + 2305 + lru-cache@5.1.1: 2306 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2307 + 2308 + magic-string@0.30.21: 2309 + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 2310 + 2311 + magicast@0.2.11: 2312 + resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==} 2313 + 2314 + magicast@0.5.2: 2315 + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} 2316 + 2317 + mdast-util-to-hast@13.2.1: 2318 + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} 2319 + 2320 + merge-anything@5.1.7: 2321 + resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} 2322 + engines: {node: '>=12.13'} 2323 + 2324 + merge-stream@2.0.0: 2325 + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2326 + 2327 + merge2@1.4.1: 2328 + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2329 + engines: {node: '>= 8'} 2330 + 2331 + micromark-util-character@2.1.1: 2332 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 2333 + 2334 + micromark-util-encode@2.0.1: 2335 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 2336 + 2337 + micromark-util-sanitize-uri@2.0.1: 2338 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 2339 + 2340 + micromark-util-symbol@2.0.1: 2341 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 2342 + 2343 + micromark-util-types@2.0.2: 2344 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 2345 + 2346 + micromatch@4.0.8: 2347 + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 2348 + engines: {node: '>=8.6'} 2349 + 2350 + mime-db@1.54.0: 2351 + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} 2352 + engines: {node: '>= 0.6'} 2353 + 2354 + mime-types@3.0.2: 2355 + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} 2356 + engines: {node: '>=18'} 2357 + 2358 + mime@1.6.0: 2359 + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 2360 + engines: {node: '>=4'} 2361 + hasBin: true 2362 + 2363 + mime@3.0.0: 2364 + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 2365 + engines: {node: '>=10.0.0'} 2366 + hasBin: true 2367 + 2368 + mime@4.1.0: 2369 + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} 2370 + engines: {node: '>=16'} 2371 + hasBin: true 2372 + 2373 + mimic-fn@4.0.0: 2374 + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2375 + engines: {node: '>=12'} 2376 + 2377 + minimatch@10.2.5: 2378 + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} 2379 + engines: {node: 18 || 20 || >=22} 2380 + 2381 + minimatch@5.1.9: 2382 + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} 2383 + engines: {node: '>=10'} 2384 + 2385 + minimatch@9.0.9: 2386 + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} 2387 + engines: {node: '>=16 || 14 >=14.17'} 2388 + 2389 + minipass@7.1.3: 2390 + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} 2391 + engines: {node: '>=16 || 14 >=14.17'} 2392 + 2393 + minizlib@3.1.0: 2394 + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} 2395 + engines: {node: '>= 18'} 2396 + 2397 + mlly@1.8.2: 2398 + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} 2399 + 2400 + ms@2.0.0: 2401 + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 2402 + 2403 + ms@2.1.3: 2404 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2405 + 2406 + multiformats@9.9.0: 2407 + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} 2408 + 2409 + nanoid@3.3.11: 2410 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 2411 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2412 + hasBin: true 2413 + 2414 + nitropack@2.13.2: 2415 + resolution: {integrity: sha512-R5TMzSBoTDG4gi6Y+pvvyCNnooShHePHsHxMLP9EXDGdrlR5RvNdSd4e5k8z0/EzP9Ske7ABRMDWg6O7Dm2OYw==} 2416 + engines: {node: ^20.19.0 || >=22.12.0} 2417 + hasBin: true 2418 + peerDependencies: 2419 + xml2js: ^0.6.2 2420 + peerDependenciesMeta: 2421 + xml2js: 2422 + optional: true 2423 + 2424 + node-addon-api@7.1.1: 2425 + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} 2426 + 2427 + node-fetch-native@1.6.7: 2428 + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 2429 + 2430 + node-fetch@2.7.0: 2431 + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 2432 + engines: {node: 4.x || >=6.0.0} 2433 + peerDependencies: 2434 + encoding: ^0.1.0 2435 + peerDependenciesMeta: 2436 + encoding: 2437 + optional: true 2438 + 2439 + node-forge@1.4.0: 2440 + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} 2441 + engines: {node: '>= 6.13.0'} 2442 + 2443 + node-gyp-build@4.8.4: 2444 + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} 2445 + hasBin: true 2446 + 2447 + node-mock-http@1.0.4: 2448 + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} 2449 + 2450 + node-releases@2.0.36: 2451 + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} 2452 + 2453 + nopt@8.1.0: 2454 + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} 2455 + engines: {node: ^18.17.0 || >=20.5.0} 2456 + hasBin: true 2457 + 2458 + normalize-path@3.0.0: 2459 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2460 + engines: {node: '>=0.10.0'} 2461 + 2462 + npm-run-path@5.3.0: 2463 + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 2464 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2465 + 2466 + nypm@0.6.5: 2467 + resolution: {integrity: sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==} 2468 + engines: {node: '>=18'} 2469 + hasBin: true 2470 + 2471 + ofetch@1.5.1: 2472 + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} 2473 + 2474 + ohash@2.0.11: 2475 + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 2476 + 2477 + on-finished@2.4.1: 2478 + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 2479 + engines: {node: '>= 0.8'} 2480 + 2481 + onetime@6.0.0: 2482 + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2483 + engines: {node: '>=12'} 2484 + 2485 + oniguruma-to-es@2.3.0: 2486 + resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} 2487 + 2488 + open@11.0.0: 2489 + resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} 2490 + engines: {node: '>=20'} 2491 + 2492 + package-json-from-dist@1.0.1: 2493 + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 2494 + 2495 + parse5@7.3.0: 2496 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 2497 + 2498 + parseurl@1.3.3: 2499 + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 2500 + engines: {node: '>= 0.8'} 2501 + 2502 + path-key@3.1.1: 2503 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2504 + engines: {node: '>=8'} 2505 + 2506 + path-key@4.0.0: 2507 + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 2508 + engines: {node: '>=12'} 2509 + 2510 + path-parse@1.0.7: 2511 + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2512 + 2513 + path-scurry@1.11.1: 2514 + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 2515 + engines: {node: '>=16 || 14 >=14.18'} 2516 + 2517 + path-scurry@2.0.2: 2518 + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} 2519 + engines: {node: 18 || 20 || >=22} 2520 + 2521 + path-to-regexp@6.3.0: 2522 + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} 2523 + 2524 + pathe@1.1.2: 2525 + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 2526 + 2527 + pathe@2.0.3: 2528 + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 2529 + 2530 + perfect-debounce@2.1.0: 2531 + resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} 2532 + 2533 + picocolors@1.1.1: 2534 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 2535 + 2536 + picomatch@2.3.2: 2537 + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} 2538 + engines: {node: '>=8.6'} 2539 + 2540 + picomatch@4.0.4: 2541 + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} 2542 + engines: {node: '>=12'} 2543 + 2544 + pkg-types@1.3.1: 2545 + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 2546 + 2547 + pkg-types@2.3.0: 2548 + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} 2549 + 2550 + postcss@8.5.8: 2551 + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} 2552 + engines: {node: ^10 || ^12 || >=14} 2553 + 2554 + postgres@3.4.8: 2555 + resolution: {integrity: sha512-d+JFcLM17njZaOLkv6SCev7uoLaBtfK86vMUXhW1Z4glPWh4jozno9APvW/XKFJ3CCxVoC7OL38BqRydtu5nGg==} 2556 + engines: {node: '>=12'} 2557 + 2558 + powershell-utils@0.1.0: 2559 + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} 2560 + engines: {node: '>=20'} 2561 + 2562 + pretty-bytes@7.1.0: 2563 + resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} 2564 + engines: {node: '>=20'} 2565 + 2566 + process-nextick-args@2.0.1: 2567 + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 2568 + 2569 + process@0.11.10: 2570 + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 2571 + engines: {node: '>= 0.6.0'} 2572 + 2573 + property-information@7.1.0: 2574 + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} 2575 + 2576 + quansync@0.2.11: 2577 + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} 2578 + 2579 + queue-microtask@1.2.3: 2580 + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2581 + 2582 + radix3@1.1.2: 2583 + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} 2584 + 2585 + range-parser@1.2.1: 2586 + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 2587 + engines: {node: '>= 0.6'} 2588 + 2589 + rc9@2.1.2: 2590 + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} 2591 + 2592 + readable-stream@2.3.8: 2593 + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 2594 + 2595 + readable-stream@4.7.0: 2596 + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} 2597 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2598 + 2599 + readdir-glob@1.1.3: 2600 + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} 2601 + 2602 + readdirp@4.1.2: 2603 + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 2604 + engines: {node: '>= 14.18.0'} 2605 + 2606 + readdirp@5.0.0: 2607 + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} 2608 + engines: {node: '>= 20.19.0'} 2609 + 2610 + recast@0.23.11: 2611 + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} 2612 + engines: {node: '>= 4'} 2613 + 2614 + redis-errors@1.2.0: 2615 + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} 2616 + engines: {node: '>=4'} 2617 + 2618 + redis-parser@3.0.0: 2619 + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} 2620 + engines: {node: '>=4'} 2621 + 2622 + regex-recursion@5.1.1: 2623 + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} 2624 + 2625 + regex-utilities@2.3.0: 2626 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 2627 + 2628 + regex@5.1.1: 2629 + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 2630 + 2631 + requires-port@1.0.0: 2632 + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 2633 + 2634 + resolve-from@5.0.0: 2635 + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2636 + engines: {node: '>=8'} 2637 + 2638 + resolve-pkg-maps@1.0.0: 2639 + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 2640 + 2641 + resolve@1.22.11: 2642 + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} 2643 + engines: {node: '>= 0.4'} 2644 + hasBin: true 2645 + 2646 + reusify@1.1.0: 2647 + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 2648 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2649 + 2650 + rollup-plugin-visualizer@7.0.1: 2651 + resolution: {integrity: sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg==} 2652 + engines: {node: '>=22'} 2653 + hasBin: true 2654 + peerDependencies: 2655 + rolldown: 1.x || ^1.0.0-beta || ^1.0.0-rc 2656 + rollup: 2.x || 3.x || 4.x 2657 + peerDependenciesMeta: 2658 + rolldown: 2659 + optional: true 2660 + rollup: 2661 + optional: true 2662 + 2663 + rollup@4.60.1: 2664 + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} 2665 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2666 + hasBin: true 2667 + 2668 + run-applescript@7.1.0: 2669 + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} 2670 + engines: {node: '>=18'} 2671 + 2672 + run-parallel@1.2.0: 2673 + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2674 + 2675 + safe-buffer@5.1.2: 2676 + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 2677 + 2678 + safe-buffer@5.2.1: 2679 + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2680 + 2681 + scule@1.3.0: 2682 + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} 2683 + 2684 + semver@6.3.1: 2685 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2686 + hasBin: true 2687 + 2688 + semver@7.7.4: 2689 + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} 2690 + engines: {node: '>=10'} 2691 + hasBin: true 2692 + 2693 + send@0.19.2: 2694 + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} 2695 + engines: {node: '>= 0.8.0'} 2696 + 2697 + send@1.2.1: 2698 + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} 2699 + engines: {node: '>= 18'} 2700 + 2701 + serialize-javascript@7.0.5: 2702 + resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} 2703 + engines: {node: '>=20.0.0'} 2704 + 2705 + seroval-plugins@1.5.1: 2706 + resolution: {integrity: sha512-4FbuZ/TMl02sqv0RTFexu0SP6V+ywaIe5bAWCCEik0fk17BhALgwvUDVF7e3Uvf9pxmwCEJsRPmlkUE6HdzLAw==} 2707 + engines: {node: '>=10'} 2708 + peerDependencies: 2709 + seroval: ^1.0 2710 + 2711 + seroval@1.5.1: 2712 + resolution: {integrity: sha512-OwrZRZAfhHww0WEnKHDY8OM0U/Qs8OTfIDWhUD4BLpNJUfXK4cGmjiagGze086m+mhI+V2nD0gfbHEnJjb9STA==} 2713 + engines: {node: '>=10'} 2714 + 2715 + serve-placeholder@2.0.2: 2716 + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} 2717 + 2718 + serve-static@1.16.3: 2719 + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} 2720 + engines: {node: '>= 0.8.0'} 2721 + 2722 + serve-static@2.2.1: 2723 + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} 2724 + engines: {node: '>= 18'} 2725 + 2726 + setprototypeof@1.2.0: 2727 + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 2728 + 2729 + shebang-command@2.0.0: 2730 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2731 + engines: {node: '>=8'} 2732 + 2733 + shebang-regex@3.0.0: 2734 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2735 + engines: {node: '>=8'} 2736 + 2737 + shell-quote@1.8.3: 2738 + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} 2739 + engines: {node: '>= 0.4'} 2740 + 2741 + shiki@1.29.2: 2742 + resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} 2743 + 2744 + signal-exit@4.1.0: 2745 + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 2746 + engines: {node: '>=14'} 2747 + 2748 + slash@5.1.0: 2749 + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} 2750 + engines: {node: '>=14.16'} 2751 + 2752 + smob@1.6.1: 2753 + resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==} 2754 + engines: {node: '>=20.0.0'} 2755 + 2756 + solid-js@1.9.12: 2757 + resolution: {integrity: sha512-QzKaSJq2/iDrWR1As6MHZQ8fQkdOBf8GReYb7L5iKwMGceg7HxDcaOHk0at66tNgn9U2U7dXo8ZZpLIAmGMzgw==} 2758 + 2759 + solid-refresh@0.6.3: 2760 + resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} 2761 + peerDependencies: 2762 + solid-js: ^1.3 2763 + 2764 + solid-use@0.9.1: 2765 + resolution: {integrity: sha512-UwvXDVPlrrbj/9ewG9ys5uL2IO4jSiwys2KPzK4zsnAcmEl7iDafZWW1Mo4BSEWOmQCGK6IvpmGHo1aou8iOFw==} 2766 + engines: {node: '>=10'} 2767 + peerDependencies: 2768 + solid-js: ^1.7 2769 + 2770 + source-map-js@1.2.1: 2771 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2772 + engines: {node: '>=0.10.0'} 2773 + 2774 + source-map-support@0.5.21: 2775 + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2776 + 2777 + source-map@0.6.1: 2778 + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2779 + engines: {node: '>=0.10.0'} 2780 + 2781 + source-map@0.7.6: 2782 + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} 2783 + engines: {node: '>= 12'} 2784 + 2785 + space-separated-tokens@2.0.2: 2786 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 2787 + 2788 + stackframe@1.3.4: 2789 + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} 2790 + 2791 + standard-as-callback@2.1.0: 2792 + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} 2793 + 2794 + statuses@2.0.2: 2795 + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} 2796 + engines: {node: '>= 0.8'} 2797 + 2798 + std-env@3.10.0: 2799 + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} 2800 + 2801 + std-env@4.0.0: 2802 + resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} 2803 + 2804 + streamx@2.25.0: 2805 + resolution: {integrity: sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==} 2806 + 2807 + string-width@4.2.3: 2808 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2809 + engines: {node: '>=8'} 2810 + 2811 + string-width@5.1.2: 2812 + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2813 + engines: {node: '>=12'} 2814 + 2815 + string-width@7.2.0: 2816 + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 2817 + engines: {node: '>=18'} 2818 + 2819 + string_decoder@1.1.1: 2820 + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 2821 + 2822 + string_decoder@1.3.0: 2823 + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2824 + 2825 + stringify-entities@4.0.4: 2826 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 2827 + 2828 + strip-ansi@6.0.1: 2829 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2830 + engines: {node: '>=8'} 2831 + 2832 + strip-ansi@7.2.0: 2833 + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} 2834 + engines: {node: '>=12'} 2835 + 2836 + strip-final-newline@3.0.0: 2837 + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 2838 + engines: {node: '>=12'} 2839 + 2840 + strip-literal@3.1.0: 2841 + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} 2842 + 2843 + supports-color@10.2.2: 2844 + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} 2845 + engines: {node: '>=18'} 2846 + 2847 + supports-preserve-symlinks-flag@1.0.0: 2848 + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2849 + engines: {node: '>= 0.4'} 2850 + 2851 + system-architecture@0.1.0: 2852 + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} 2853 + engines: {node: '>=18'} 2854 + 2855 + tagged-tag@1.0.0: 2856 + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} 2857 + engines: {node: '>=20'} 2858 + 2859 + tar-stream@3.1.8: 2860 + resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} 2861 + 2862 + tar@7.5.13: 2863 + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} 2864 + engines: {node: '>=18'} 2865 + 2866 + teex@1.0.1: 2867 + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} 2868 + 2869 + terracotta@1.1.0: 2870 + resolution: {integrity: sha512-kfQciWUBUBgYkXu7gh3CK3FAJng/iqZslAaY08C+k1Hdx17aVEpcFFb/WPaysxAfcupNH3y53s/pc53xxZauww==} 2871 + engines: {node: '>=10'} 2872 + peerDependencies: 2873 + solid-js: ^1.8 2874 + 2875 + terser@5.46.1: 2876 + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} 2877 + engines: {node: '>=10'} 2878 + hasBin: true 2879 + 2880 + text-decoder@1.2.7: 2881 + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} 2882 + 2883 + tiny-invariant@1.3.3: 2884 + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 2885 + 2886 + tinyexec@1.0.4: 2887 + resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} 2888 + engines: {node: '>=18'} 2889 + 2890 + tinyglobby@0.2.15: 2891 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 2892 + engines: {node: '>=12.0.0'} 2893 + 2894 + tlds@1.261.0: 2895 + resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} 2896 + hasBin: true 2897 + 2898 + to-regex-range@5.0.1: 2899 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2900 + engines: {node: '>=8.0'} 2901 + 2902 + toidentifier@1.0.1: 2903 + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 2904 + engines: {node: '>=0.6'} 2905 + 2906 + tr46@0.0.3: 2907 + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2908 + 2909 + trim-lines@3.0.1: 2910 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 2911 + 2912 + tslib@2.8.1: 2913 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2914 + 2915 + type-fest@4.41.0: 2916 + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 2917 + engines: {node: '>=16'} 2918 + 2919 + type-fest@5.5.0: 2920 + resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==} 2921 + engines: {node: '>=20'} 2922 + 2923 + typescript@5.9.3: 2924 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 2925 + engines: {node: '>=14.17'} 2926 + hasBin: true 2927 + 2928 + ufo@1.6.3: 2929 + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} 2930 + 2931 + uint8arrays@3.0.0: 2932 + resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==} 2933 + 2934 + ultrahtml@1.6.0: 2935 + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 2936 + 2937 + uncrypto@0.1.3: 2938 + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 2939 + 2940 + unctx@2.5.0: 2941 + resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} 2942 + 2943 + undici-types@5.28.4: 2944 + resolution: {integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==} 2945 + 2946 + undici-types@7.18.2: 2947 + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} 2948 + 2949 + undici@6.24.1: 2950 + resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} 2951 + engines: {node: '>=18.17'} 2952 + 2953 + unenv@1.10.0: 2954 + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} 2955 + 2956 + unenv@2.0.0-rc.24: 2957 + resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} 2958 + 2959 + unicode-segmenter@0.14.5: 2960 + resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==} 2961 + 2962 + unicorn-magic@0.4.0: 2963 + resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} 2964 + engines: {node: '>=20'} 2965 + 2966 + unimport@6.0.2: 2967 + resolution: {integrity: sha512-ZSOkrDw380w+KIPniY3smyXh2h7H9v2MNr9zejDuh239o5sdea44DRAYrv+rfUi2QGT186P2h0GPGKvy8avQ5g==} 2968 + engines: {node: '>=18.12.0'} 2969 + 2970 + unist-util-is@6.0.1: 2971 + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} 2972 + 2973 + unist-util-position@5.0.0: 2974 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 2975 + 2976 + unist-util-stringify-position@4.0.0: 2977 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 2978 + 2979 + unist-util-visit-parents@6.0.2: 2980 + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} 2981 + 2982 + unist-util-visit@5.1.0: 2983 + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} 2984 + 2985 + unplugin-utils@0.3.1: 2986 + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} 2987 + engines: {node: '>=20.19.0'} 2988 + 2989 + unplugin@2.3.11: 2990 + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} 2991 + engines: {node: '>=18.12.0'} 2992 + 2993 + unplugin@3.0.0: 2994 + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} 2995 + engines: {node: ^20.19.0 || >=22.12.0} 2996 + 2997 + unstorage@1.17.5: 2998 + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} 2999 + peerDependencies: 3000 + '@azure/app-configuration': ^1.8.0 3001 + '@azure/cosmos': ^4.2.0 3002 + '@azure/data-tables': ^13.3.0 3003 + '@azure/identity': ^4.6.0 3004 + '@azure/keyvault-secrets': ^4.9.0 3005 + '@azure/storage-blob': ^12.26.0 3006 + '@capacitor/preferences': ^6 || ^7 || ^8 3007 + '@deno/kv': '>=0.9.0' 3008 + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 3009 + '@planetscale/database': ^1.19.0 3010 + '@upstash/redis': ^1.34.3 3011 + '@vercel/blob': '>=0.27.1' 3012 + '@vercel/functions': ^2.2.12 || ^3.0.0 3013 + '@vercel/kv': ^1 || ^2 || ^3 3014 + aws4fetch: ^1.0.20 3015 + db0: '>=0.2.1' 3016 + idb-keyval: ^6.2.1 3017 + ioredis: ^5.4.2 3018 + uploadthing: ^7.4.4 3019 + peerDependenciesMeta: 3020 + '@azure/app-configuration': 3021 + optional: true 3022 + '@azure/cosmos': 3023 + optional: true 3024 + '@azure/data-tables': 3025 + optional: true 3026 + '@azure/identity': 3027 + optional: true 3028 + '@azure/keyvault-secrets': 3029 + optional: true 3030 + '@azure/storage-blob': 3031 + optional: true 3032 + '@capacitor/preferences': 3033 + optional: true 3034 + '@deno/kv': 3035 + optional: true 3036 + '@netlify/blobs': 3037 + optional: true 3038 + '@planetscale/database': 3039 + optional: true 3040 + '@upstash/redis': 3041 + optional: true 3042 + '@vercel/blob': 3043 + optional: true 3044 + '@vercel/functions': 3045 + optional: true 3046 + '@vercel/kv': 3047 + optional: true 3048 + aws4fetch: 3049 + optional: true 3050 + db0: 3051 + optional: true 3052 + idb-keyval: 3053 + optional: true 3054 + ioredis: 3055 + optional: true 3056 + uploadthing: 3057 + optional: true 3058 + 3059 + untun@0.1.3: 3060 + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} 3061 + hasBin: true 3062 + 3063 + untyped@2.0.0: 3064 + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} 3065 + hasBin: true 3066 + 3067 + unwasm@0.5.3: 3068 + resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} 3069 + 3070 + update-browserslist-db@1.2.3: 3071 + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} 3072 + hasBin: true 3073 + peerDependencies: 3074 + browserslist: '>= 4.21.0' 3075 + 3076 + uqr@0.1.2: 3077 + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} 3078 + 3079 + util-deprecate@1.0.2: 3080 + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3081 + 3082 + vfile-message@4.0.3: 3083 + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 3084 + 3085 + vfile@6.0.3: 3086 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 3087 + 3088 + vinxi@0.5.11: 3089 + resolution: {integrity: sha512-82Qm+EG/b2PRFBvXBbz1lgWBGcd9totIL6SJhnrZYfakjloTVG9+5l6gfO6dbCCtztm5pqWFzLY0qpZ3H3ww/w==} 3090 + hasBin: true 3091 + 3092 + vite-plugin-solid@2.11.11: 3093 + resolution: {integrity: sha512-YMZCXsLw9kyuvQFEdwLP27fuTQJLmjNoHy90AOJnbRuJ6DwShUxKFo38gdFrWn9v11hnGicKCZEaeI/TFs6JKw==} 3094 + peerDependencies: 3095 + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* 3096 + solid-js: ^1.7.2 3097 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 3098 + peerDependenciesMeta: 3099 + '@testing-library/jest-dom': 3100 + optional: true 3101 + 3102 + vite@6.4.1: 3103 + resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} 3104 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 3105 + hasBin: true 3106 + peerDependencies: 3107 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 3108 + jiti: '>=1.21.0' 3109 + less: '*' 3110 + lightningcss: ^1.21.0 3111 + sass: '*' 3112 + sass-embedded: '*' 3113 + stylus: '*' 3114 + sugarss: '*' 3115 + terser: ^5.16.0 3116 + tsx: ^4.8.1 3117 + yaml: ^2.4.2 3118 + peerDependenciesMeta: 3119 + '@types/node': 3120 + optional: true 3121 + jiti: 3122 + optional: true 3123 + less: 3124 + optional: true 3125 + lightningcss: 3126 + optional: true 3127 + sass: 3128 + optional: true 3129 + sass-embedded: 3130 + optional: true 3131 + stylus: 3132 + optional: true 3133 + sugarss: 3134 + optional: true 3135 + terser: 3136 + optional: true 3137 + tsx: 3138 + optional: true 3139 + yaml: 3140 + optional: true 3141 + 3142 + vitefu@1.1.2: 3143 + resolution: {integrity: sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==} 3144 + peerDependencies: 3145 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0 3146 + peerDependenciesMeta: 3147 + vite: 3148 + optional: true 3149 + 3150 + webidl-conversions@3.0.1: 3151 + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3152 + 3153 + webpack-virtual-modules@0.6.2: 3154 + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} 3155 + 3156 + whatwg-url@5.0.0: 3157 + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3158 + 3159 + which@2.0.2: 3160 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3161 + engines: {node: '>= 8'} 3162 + hasBin: true 3163 + 3164 + which@4.0.0: 3165 + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} 3166 + engines: {node: ^16.13.0 || >=18.0.0} 3167 + hasBin: true 3168 + 3169 + widest-line@5.0.0: 3170 + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 3171 + engines: {node: '>=18'} 3172 + 3173 + wrap-ansi@7.0.0: 3174 + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3175 + engines: {node: '>=10'} 3176 + 3177 + wrap-ansi@8.1.0: 3178 + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3179 + engines: {node: '>=12'} 3180 + 3181 + wrap-ansi@9.0.2: 3182 + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} 3183 + engines: {node: '>=18'} 3184 + 3185 + wsl-utils@0.3.1: 3186 + resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} 3187 + engines: {node: '>=20'} 3188 + 3189 + y18n@5.0.8: 3190 + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 3191 + engines: {node: '>=10'} 3192 + 3193 + yallist@3.1.1: 3194 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 3195 + 3196 + yallist@5.0.0: 3197 + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} 3198 + engines: {node: '>=18'} 3199 + 3200 + yargs-parser@22.0.0: 3201 + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} 3202 + engines: {node: ^20.19.0 || ^22.12.0 || >=23} 3203 + 3204 + yargs@18.0.0: 3205 + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} 3206 + engines: {node: ^20.19.0 || ^22.12.0 || >=23} 3207 + 3208 + youch-core@0.3.3: 3209 + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} 3210 + 3211 + youch@4.1.1: 3212 + resolution: {integrity: sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==} 3213 + 3214 + zip-stream@6.0.1: 3215 + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} 3216 + engines: {node: '>= 14'} 3217 + 3218 + zod@3.25.76: 3219 + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 3220 + 3221 + zod@4.3.6: 3222 + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} 3223 + 3224 + zwitch@2.0.4: 3225 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 3226 + 3227 + snapshots: 3228 + 3229 + '@atproto-labs/did-resolver@0.2.6': 3230 + dependencies: 3231 + '@atproto-labs/fetch': 0.2.3 3232 + '@atproto-labs/pipe': 0.1.1 3233 + '@atproto-labs/simple-store': 0.3.0 3234 + '@atproto-labs/simple-store-memory': 0.1.4 3235 + '@atproto/did': 0.3.0 3236 + zod: 3.25.76 3237 + 3238 + '@atproto-labs/fetch-node@0.2.0': 3239 + dependencies: 3240 + '@atproto-labs/fetch': 0.2.3 3241 + '@atproto-labs/pipe': 0.1.1 3242 + ipaddr.js: 2.3.0 3243 + undici: 6.24.1 3244 + 3245 + '@atproto-labs/fetch@0.2.3': 3246 + dependencies: 3247 + '@atproto-labs/pipe': 0.1.1 3248 + 3249 + '@atproto-labs/handle-resolver-node@0.1.25': 3250 + dependencies: 3251 + '@atproto-labs/fetch-node': 0.2.0 3252 + '@atproto-labs/handle-resolver': 0.3.6 3253 + '@atproto/did': 0.3.0 3254 + 3255 + '@atproto-labs/handle-resolver@0.3.6': 3256 + dependencies: 3257 + '@atproto-labs/simple-store': 0.3.0 3258 + '@atproto-labs/simple-store-memory': 0.1.4 3259 + '@atproto/did': 0.3.0 3260 + zod: 3.25.76 3261 + 3262 + '@atproto-labs/identity-resolver@0.3.6': 3263 + dependencies: 3264 + '@atproto-labs/did-resolver': 0.2.6 3265 + '@atproto-labs/handle-resolver': 0.3.6 3266 + 3267 + '@atproto-labs/pipe@0.1.1': {} 3268 + 3269 + '@atproto-labs/simple-store-memory@0.1.4': 3270 + dependencies: 3271 + '@atproto-labs/simple-store': 0.3.0 3272 + lru-cache: 10.4.3 3273 + 3274 + '@atproto-labs/simple-store@0.3.0': {} 3275 + 3276 + '@atproto/api@0.13.35': 3277 + dependencies: 3278 + '@atproto/common-web': 0.4.19 3279 + '@atproto/lexicon': 0.4.14 3280 + '@atproto/syntax': 0.3.4 3281 + '@atproto/xrpc': 0.6.12 3282 + await-lock: 2.2.2 3283 + multiformats: 9.9.0 3284 + tlds: 1.261.0 3285 + zod: 3.25.76 3286 + 3287 + '@atproto/common-web@0.4.19': 3288 + dependencies: 3289 + '@atproto/lex-data': 0.0.14 3290 + '@atproto/lex-json': 0.0.14 3291 + '@atproto/syntax': 0.5.2 3292 + zod: 3.25.76 3293 + 3294 + '@atproto/crypto@0.4.5': 3295 + dependencies: 3296 + '@noble/curves': 1.9.7 3297 + '@noble/hashes': 1.8.0 3298 + uint8arrays: 3.0.0 3299 + 3300 + '@atproto/did@0.3.0': 3301 + dependencies: 3302 + zod: 3.25.76 3303 + 3304 + '@atproto/identity@0.4.12': 3305 + dependencies: 3306 + '@atproto/common-web': 0.4.19 3307 + '@atproto/crypto': 0.4.5 3308 + 3309 + '@atproto/jwk-jose@0.1.11': 3310 + dependencies: 3311 + '@atproto/jwk': 0.6.0 3312 + jose: 5.10.0 3313 + 3314 + '@atproto/jwk-webcrypto@0.2.0': 3315 + dependencies: 3316 + '@atproto/jwk': 0.6.0 3317 + '@atproto/jwk-jose': 0.1.11 3318 + zod: 3.25.76 3319 + 3320 + '@atproto/jwk@0.6.0': 3321 + dependencies: 3322 + multiformats: 9.9.0 3323 + zod: 3.25.76 3324 + 3325 + '@atproto/lex-data@0.0.14': 3326 + dependencies: 3327 + multiformats: 9.9.0 3328 + tslib: 2.8.1 3329 + uint8arrays: 3.0.0 3330 + unicode-segmenter: 0.14.5 3331 + 3332 + '@atproto/lex-json@0.0.14': 3333 + dependencies: 3334 + '@atproto/lex-data': 0.0.14 3335 + tslib: 2.8.1 3336 + 3337 + '@atproto/lexicon@0.4.14': 3338 + dependencies: 3339 + '@atproto/common-web': 0.4.19 3340 + '@atproto/syntax': 0.4.3 3341 + iso-datestring-validator: 2.2.2 3342 + multiformats: 9.9.0 3343 + zod: 3.25.76 3344 + 3345 + '@atproto/lexicon@0.6.2': 3346 + dependencies: 3347 + '@atproto/common-web': 0.4.19 3348 + '@atproto/syntax': 0.5.2 3349 + iso-datestring-validator: 2.2.2 3350 + multiformats: 9.9.0 3351 + zod: 3.25.76 3352 + 3353 + '@atproto/oauth-client-node@0.3.17': 3354 + dependencies: 3355 + '@atproto-labs/did-resolver': 0.2.6 3356 + '@atproto-labs/handle-resolver-node': 0.1.25 3357 + '@atproto-labs/simple-store': 0.3.0 3358 + '@atproto/did': 0.3.0 3359 + '@atproto/jwk': 0.6.0 3360 + '@atproto/jwk-jose': 0.1.11 3361 + '@atproto/jwk-webcrypto': 0.2.0 3362 + '@atproto/oauth-client': 0.6.0 3363 + '@atproto/oauth-types': 0.6.3 3364 + 3365 + '@atproto/oauth-client@0.6.0': 3366 + dependencies: 3367 + '@atproto-labs/did-resolver': 0.2.6 3368 + '@atproto-labs/fetch': 0.2.3 3369 + '@atproto-labs/handle-resolver': 0.3.6 3370 + '@atproto-labs/identity-resolver': 0.3.6 3371 + '@atproto-labs/simple-store': 0.3.0 3372 + '@atproto-labs/simple-store-memory': 0.1.4 3373 + '@atproto/did': 0.3.0 3374 + '@atproto/jwk': 0.6.0 3375 + '@atproto/oauth-types': 0.6.3 3376 + '@atproto/xrpc': 0.7.7 3377 + core-js: 3.49.0 3378 + multiformats: 9.9.0 3379 + zod: 3.25.76 3380 + 3381 + '@atproto/oauth-types@0.6.3': 3382 + dependencies: 3383 + '@atproto/did': 0.3.0 3384 + '@atproto/jwk': 0.6.0 3385 + zod: 3.25.76 3386 + 3387 + '@atproto/syntax@0.3.4': {} 3388 + 3389 + '@atproto/syntax@0.4.3': 3390 + dependencies: 3391 + tslib: 2.8.1 3392 + 3393 + '@atproto/syntax@0.5.2': 3394 + dependencies: 3395 + tslib: 2.8.1 3396 + 3397 + '@atproto/xrpc@0.6.12': 3398 + dependencies: 3399 + '@atproto/lexicon': 0.4.14 3400 + zod: 3.25.76 3401 + 3402 + '@atproto/xrpc@0.7.7': 3403 + dependencies: 3404 + '@atproto/lexicon': 0.6.2 3405 + zod: 3.25.76 3406 + 3407 + '@babel/code-frame@7.26.2': 3408 + dependencies: 3409 + '@babel/helper-validator-identifier': 7.28.5 3410 + js-tokens: 4.0.0 3411 + picocolors: 1.1.1 3412 + 3413 + '@babel/code-frame@7.29.0': 3414 + dependencies: 3415 + '@babel/helper-validator-identifier': 7.28.5 3416 + js-tokens: 4.0.0 3417 + picocolors: 1.1.1 3418 + 3419 + '@babel/compat-data@7.29.0': {} 3420 + 3421 + '@babel/core@7.29.0': 3422 + dependencies: 3423 + '@babel/code-frame': 7.29.0 3424 + '@babel/generator': 7.29.1 3425 + '@babel/helper-compilation-targets': 7.28.6 3426 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) 3427 + '@babel/helpers': 7.29.2 3428 + '@babel/parser': 7.29.2 3429 + '@babel/template': 7.28.6 3430 + '@babel/traverse': 7.29.0 3431 + '@babel/types': 7.29.0 3432 + '@jridgewell/remapping': 2.3.5 3433 + convert-source-map: 2.0.0 3434 + debug: 4.4.3 3435 + gensync: 1.0.0-beta.2 3436 + json5: 2.2.3 3437 + semver: 6.3.1 3438 + transitivePeerDependencies: 3439 + - supports-color 3440 + 3441 + '@babel/generator@7.29.1': 3442 + dependencies: 3443 + '@babel/parser': 7.29.2 3444 + '@babel/types': 7.29.0 3445 + '@jridgewell/gen-mapping': 0.3.13 3446 + '@jridgewell/trace-mapping': 0.3.31 3447 + jsesc: 3.1.0 3448 + 3449 + '@babel/helper-compilation-targets@7.28.6': 3450 + dependencies: 3451 + '@babel/compat-data': 7.29.0 3452 + '@babel/helper-validator-option': 7.27.1 3453 + browserslist: 4.28.2 3454 + lru-cache: 5.1.1 3455 + semver: 6.3.1 3456 + 3457 + '@babel/helper-globals@7.28.0': {} 3458 + 3459 + '@babel/helper-module-imports@7.18.6': 3460 + dependencies: 3461 + '@babel/types': 7.29.0 3462 + 3463 + '@babel/helper-module-imports@7.28.6': 3464 + dependencies: 3465 + '@babel/traverse': 7.29.0 3466 + '@babel/types': 7.29.0 3467 + transitivePeerDependencies: 3468 + - supports-color 3469 + 3470 + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': 3471 + dependencies: 3472 + '@babel/core': 7.29.0 3473 + '@babel/helper-module-imports': 7.28.6 3474 + '@babel/helper-validator-identifier': 7.28.5 3475 + '@babel/traverse': 7.29.0 3476 + transitivePeerDependencies: 3477 + - supports-color 3478 + 3479 + '@babel/helper-plugin-utils@7.28.6': {} 3480 + 3481 + '@babel/helper-string-parser@7.27.1': {} 3482 + 3483 + '@babel/helper-validator-identifier@7.28.5': {} 3484 + 3485 + '@babel/helper-validator-option@7.27.1': {} 3486 + 3487 + '@babel/helpers@7.29.2': 3488 + dependencies: 3489 + '@babel/template': 7.28.6 3490 + '@babel/types': 7.29.0 3491 + 3492 + '@babel/parser@7.29.2': 3493 + dependencies: 3494 + '@babel/types': 7.29.0 3495 + 3496 + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': 3497 + dependencies: 3498 + '@babel/core': 7.29.0 3499 + '@babel/helper-plugin-utils': 7.28.6 3500 + 3501 + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': 3502 + dependencies: 3503 + '@babel/core': 7.29.0 3504 + '@babel/helper-plugin-utils': 7.28.6 3505 + 3506 + '@babel/template@7.28.6': 3507 + dependencies: 3508 + '@babel/code-frame': 7.29.0 3509 + '@babel/parser': 7.29.2 3510 + '@babel/types': 7.29.0 3511 + 3512 + '@babel/traverse@7.29.0': 3513 + dependencies: 3514 + '@babel/code-frame': 7.29.0 3515 + '@babel/generator': 7.29.1 3516 + '@babel/helper-globals': 7.28.0 3517 + '@babel/parser': 7.29.2 3518 + '@babel/template': 7.28.6 3519 + '@babel/types': 7.29.0 3520 + debug: 4.4.3 3521 + transitivePeerDependencies: 3522 + - supports-color 3523 + 3524 + '@babel/types@7.29.0': 3525 + dependencies: 3526 + '@babel/helper-string-parser': 7.27.1 3527 + '@babel/helper-validator-identifier': 7.28.5 3528 + 3529 + '@cloudflare/kv-asset-handler@0.4.2': {} 3530 + 3531 + '@deno/shim-deno-test@0.5.0': {} 3532 + 3533 + '@deno/shim-deno@0.19.2': 3534 + dependencies: 3535 + '@deno/shim-deno-test': 0.5.0 3536 + which: 4.0.0 3537 + 3538 + '@drizzle-team/brocli@0.10.2': {} 3539 + 3540 + '@esbuild-kit/core-utils@3.3.2': 3541 + dependencies: 3542 + esbuild: 0.18.20 3543 + source-map-support: 0.5.21 3544 + 3545 + '@esbuild-kit/esm-loader@2.6.5': 3546 + dependencies: 3547 + '@esbuild-kit/core-utils': 3.3.2 3548 + get-tsconfig: 4.13.7 3549 + 3550 + '@esbuild/aix-ppc64@0.19.12': 3551 + optional: true 3552 + 3553 + '@esbuild/aix-ppc64@0.25.12': 3554 + optional: true 3555 + 3556 + '@esbuild/aix-ppc64@0.27.4': 3557 + optional: true 3558 + 3559 + '@esbuild/android-arm64@0.18.20': 3560 + optional: true 3561 + 3562 + '@esbuild/android-arm64@0.19.12': 3563 + optional: true 3564 + 3565 + '@esbuild/android-arm64@0.25.12': 3566 + optional: true 3567 + 3568 + '@esbuild/android-arm64@0.27.4': 3569 + optional: true 3570 + 3571 + '@esbuild/android-arm@0.18.20': 3572 + optional: true 3573 + 3574 + '@esbuild/android-arm@0.19.12': 3575 + optional: true 3576 + 3577 + '@esbuild/android-arm@0.25.12': 3578 + optional: true 3579 + 3580 + '@esbuild/android-arm@0.27.4': 3581 + optional: true 3582 + 3583 + '@esbuild/android-x64@0.18.20': 3584 + optional: true 3585 + 3586 + '@esbuild/android-x64@0.19.12': 3587 + optional: true 3588 + 3589 + '@esbuild/android-x64@0.25.12': 3590 + optional: true 3591 + 3592 + '@esbuild/android-x64@0.27.4': 3593 + optional: true 3594 + 3595 + '@esbuild/darwin-arm64@0.18.20': 3596 + optional: true 3597 + 3598 + '@esbuild/darwin-arm64@0.19.12': 3599 + optional: true 3600 + 3601 + '@esbuild/darwin-arm64@0.25.12': 3602 + optional: true 3603 + 3604 + '@esbuild/darwin-arm64@0.27.4': 3605 + optional: true 3606 + 3607 + '@esbuild/darwin-x64@0.18.20': 3608 + optional: true 3609 + 3610 + '@esbuild/darwin-x64@0.19.12': 3611 + optional: true 3612 + 3613 + '@esbuild/darwin-x64@0.25.12': 3614 + optional: true 3615 + 3616 + '@esbuild/darwin-x64@0.27.4': 3617 + optional: true 3618 + 3619 + '@esbuild/freebsd-arm64@0.18.20': 3620 + optional: true 3621 + 3622 + '@esbuild/freebsd-arm64@0.19.12': 3623 + optional: true 3624 + 3625 + '@esbuild/freebsd-arm64@0.25.12': 3626 + optional: true 3627 + 3628 + '@esbuild/freebsd-arm64@0.27.4': 3629 + optional: true 3630 + 3631 + '@esbuild/freebsd-x64@0.18.20': 3632 + optional: true 3633 + 3634 + '@esbuild/freebsd-x64@0.19.12': 3635 + optional: true 3636 + 3637 + '@esbuild/freebsd-x64@0.25.12': 3638 + optional: true 3639 + 3640 + '@esbuild/freebsd-x64@0.27.4': 3641 + optional: true 3642 + 3643 + '@esbuild/linux-arm64@0.18.20': 3644 + optional: true 3645 + 3646 + '@esbuild/linux-arm64@0.19.12': 3647 + optional: true 3648 + 3649 + '@esbuild/linux-arm64@0.25.12': 3650 + optional: true 3651 + 3652 + '@esbuild/linux-arm64@0.27.4': 3653 + optional: true 3654 + 3655 + '@esbuild/linux-arm@0.18.20': 3656 + optional: true 3657 + 3658 + '@esbuild/linux-arm@0.19.12': 3659 + optional: true 3660 + 3661 + '@esbuild/linux-arm@0.25.12': 3662 + optional: true 3663 + 3664 + '@esbuild/linux-arm@0.27.4': 3665 + optional: true 3666 + 3667 + '@esbuild/linux-ia32@0.18.20': 3668 + optional: true 3669 + 3670 + '@esbuild/linux-ia32@0.19.12': 3671 + optional: true 3672 + 3673 + '@esbuild/linux-ia32@0.25.12': 3674 + optional: true 3675 + 3676 + '@esbuild/linux-ia32@0.27.4': 3677 + optional: true 3678 + 3679 + '@esbuild/linux-loong64@0.18.20': 3680 + optional: true 3681 + 3682 + '@esbuild/linux-loong64@0.19.12': 3683 + optional: true 3684 + 3685 + '@esbuild/linux-loong64@0.25.12': 3686 + optional: true 3687 + 3688 + '@esbuild/linux-loong64@0.27.4': 3689 + optional: true 3690 + 3691 + '@esbuild/linux-mips64el@0.18.20': 3692 + optional: true 3693 + 3694 + '@esbuild/linux-mips64el@0.19.12': 3695 + optional: true 3696 + 3697 + '@esbuild/linux-mips64el@0.25.12': 3698 + optional: true 3699 + 3700 + '@esbuild/linux-mips64el@0.27.4': 3701 + optional: true 3702 + 3703 + '@esbuild/linux-ppc64@0.18.20': 3704 + optional: true 3705 + 3706 + '@esbuild/linux-ppc64@0.19.12': 3707 + optional: true 3708 + 3709 + '@esbuild/linux-ppc64@0.25.12': 3710 + optional: true 3711 + 3712 + '@esbuild/linux-ppc64@0.27.4': 3713 + optional: true 3714 + 3715 + '@esbuild/linux-riscv64@0.18.20': 3716 + optional: true 3717 + 3718 + '@esbuild/linux-riscv64@0.19.12': 3719 + optional: true 3720 + 3721 + '@esbuild/linux-riscv64@0.25.12': 3722 + optional: true 3723 + 3724 + '@esbuild/linux-riscv64@0.27.4': 3725 + optional: true 3726 + 3727 + '@esbuild/linux-s390x@0.18.20': 3728 + optional: true 3729 + 3730 + '@esbuild/linux-s390x@0.19.12': 3731 + optional: true 3732 + 3733 + '@esbuild/linux-s390x@0.25.12': 3734 + optional: true 3735 + 3736 + '@esbuild/linux-s390x@0.27.4': 3737 + optional: true 3738 + 3739 + '@esbuild/linux-x64@0.18.20': 3740 + optional: true 3741 + 3742 + '@esbuild/linux-x64@0.19.12': 3743 + optional: true 3744 + 3745 + '@esbuild/linux-x64@0.25.12': 3746 + optional: true 3747 + 3748 + '@esbuild/linux-x64@0.27.4': 3749 + optional: true 3750 + 3751 + '@esbuild/netbsd-arm64@0.25.12': 3752 + optional: true 3753 + 3754 + '@esbuild/netbsd-arm64@0.27.4': 3755 + optional: true 3756 + 3757 + '@esbuild/netbsd-x64@0.18.20': 3758 + optional: true 3759 + 3760 + '@esbuild/netbsd-x64@0.19.12': 3761 + optional: true 3762 + 3763 + '@esbuild/netbsd-x64@0.25.12': 3764 + optional: true 3765 + 3766 + '@esbuild/netbsd-x64@0.27.4': 3767 + optional: true 3768 + 3769 + '@esbuild/openbsd-arm64@0.25.12': 3770 + optional: true 3771 + 3772 + '@esbuild/openbsd-arm64@0.27.4': 3773 + optional: true 3774 + 3775 + '@esbuild/openbsd-x64@0.18.20': 3776 + optional: true 3777 + 3778 + '@esbuild/openbsd-x64@0.19.12': 3779 + optional: true 3780 + 3781 + '@esbuild/openbsd-x64@0.25.12': 3782 + optional: true 3783 + 3784 + '@esbuild/openbsd-x64@0.27.4': 3785 + optional: true 3786 + 3787 + '@esbuild/openharmony-arm64@0.25.12': 3788 + optional: true 3789 + 3790 + '@esbuild/openharmony-arm64@0.27.4': 3791 + optional: true 3792 + 3793 + '@esbuild/sunos-x64@0.18.20': 3794 + optional: true 3795 + 3796 + '@esbuild/sunos-x64@0.19.12': 3797 + optional: true 3798 + 3799 + '@esbuild/sunos-x64@0.25.12': 3800 + optional: true 3801 + 3802 + '@esbuild/sunos-x64@0.27.4': 3803 + optional: true 3804 + 3805 + '@esbuild/win32-arm64@0.18.20': 3806 + optional: true 3807 + 3808 + '@esbuild/win32-arm64@0.19.12': 3809 + optional: true 3810 + 3811 + '@esbuild/win32-arm64@0.25.12': 3812 + optional: true 3813 + 3814 + '@esbuild/win32-arm64@0.27.4': 3815 + optional: true 3816 + 3817 + '@esbuild/win32-ia32@0.18.20': 3818 + optional: true 3819 + 3820 + '@esbuild/win32-ia32@0.19.12': 3821 + optional: true 3822 + 3823 + '@esbuild/win32-ia32@0.25.12': 3824 + optional: true 3825 + 3826 + '@esbuild/win32-ia32@0.27.4': 3827 + optional: true 3828 + 3829 + '@esbuild/win32-x64@0.18.20': 3830 + optional: true 3831 + 3832 + '@esbuild/win32-x64@0.19.12': 3833 + optional: true 3834 + 3835 + '@esbuild/win32-x64@0.25.12': 3836 + optional: true 3837 + 3838 + '@esbuild/win32-x64@0.27.4': 3839 + optional: true 3840 + 3841 + '@ioredis/commands@1.5.1': {} 3842 + 3843 + '@isaacs/cliui@8.0.2': 3844 + dependencies: 3845 + string-width: 5.1.2 3846 + string-width-cjs: string-width@4.2.3 3847 + strip-ansi: 7.2.0 3848 + strip-ansi-cjs: strip-ansi@6.0.1 3849 + wrap-ansi: 8.1.0 3850 + wrap-ansi-cjs: wrap-ansi@7.0.0 3851 + 3852 + '@isaacs/fs-minipass@4.0.1': 3853 + dependencies: 3854 + minipass: 7.1.3 3855 + 3856 + '@jridgewell/gen-mapping@0.3.13': 3857 + dependencies: 3858 + '@jridgewell/sourcemap-codec': 1.5.5 3859 + '@jridgewell/trace-mapping': 0.3.31 3860 + 3861 + '@jridgewell/remapping@2.3.5': 3862 + dependencies: 3863 + '@jridgewell/gen-mapping': 0.3.13 3864 + '@jridgewell/trace-mapping': 0.3.31 3865 + 3866 + '@jridgewell/resolve-uri@3.1.2': {} 3867 + 3868 + '@jridgewell/source-map@0.3.11': 3869 + dependencies: 3870 + '@jridgewell/gen-mapping': 0.3.13 3871 + '@jridgewell/trace-mapping': 0.3.31 3872 + 3873 + '@jridgewell/sourcemap-codec@1.5.5': {} 3874 + 3875 + '@jridgewell/trace-mapping@0.3.31': 3876 + dependencies: 3877 + '@jridgewell/resolve-uri': 3.1.2 3878 + '@jridgewell/sourcemap-codec': 1.5.5 3879 + 3880 + '@mapbox/node-pre-gyp@2.0.3': 3881 + dependencies: 3882 + consola: 3.4.2 3883 + detect-libc: 2.1.2 3884 + https-proxy-agent: 7.0.6 3885 + node-fetch: 2.7.0 3886 + nopt: 8.1.0 3887 + semver: 7.7.4 3888 + tar: 7.5.13 3889 + transitivePeerDependencies: 3890 + - encoding 3891 + - supports-color 3892 + 3893 + '@noble/curves@1.9.7': 3894 + dependencies: 3895 + '@noble/hashes': 1.8.0 3896 + 3897 + '@noble/hashes@1.8.0': {} 3898 + 3899 + '@nodelib/fs.scandir@2.1.5': 3900 + dependencies: 3901 + '@nodelib/fs.stat': 2.0.5 3902 + run-parallel: 1.2.0 3903 + 3904 + '@nodelib/fs.stat@2.0.5': {} 3905 + 3906 + '@nodelib/fs.walk@1.2.8': 3907 + dependencies: 3908 + '@nodelib/fs.scandir': 2.1.5 3909 + fastq: 1.20.1 3910 + 3911 + '@parcel/watcher-android-arm64@2.5.6': 3912 + optional: true 3913 + 3914 + '@parcel/watcher-darwin-arm64@2.5.6': 3915 + optional: true 3916 + 3917 + '@parcel/watcher-darwin-x64@2.5.6': 3918 + optional: true 3919 + 3920 + '@parcel/watcher-freebsd-x64@2.5.6': 3921 + optional: true 3922 + 3923 + '@parcel/watcher-linux-arm-glibc@2.5.6': 3924 + optional: true 3925 + 3926 + '@parcel/watcher-linux-arm-musl@2.5.6': 3927 + optional: true 3928 + 3929 + '@parcel/watcher-linux-arm64-glibc@2.5.6': 3930 + optional: true 3931 + 3932 + '@parcel/watcher-linux-arm64-musl@2.5.6': 3933 + optional: true 3934 + 3935 + '@parcel/watcher-linux-x64-glibc@2.5.6': 3936 + optional: true 3937 + 3938 + '@parcel/watcher-linux-x64-musl@2.5.6': 3939 + optional: true 3940 + 3941 + '@parcel/watcher-wasm@2.3.0': 3942 + dependencies: 3943 + is-glob: 4.0.3 3944 + micromatch: 4.0.8 3945 + 3946 + '@parcel/watcher-wasm@2.5.6': 3947 + dependencies: 3948 + is-glob: 4.0.3 3949 + picomatch: 4.0.4 3950 + 3951 + '@parcel/watcher-win32-arm64@2.5.6': 3952 + optional: true 3953 + 3954 + '@parcel/watcher-win32-ia32@2.5.6': 3955 + optional: true 3956 + 3957 + '@parcel/watcher-win32-x64@2.5.6': 3958 + optional: true 3959 + 3960 + '@parcel/watcher@2.5.6': 3961 + dependencies: 3962 + detect-libc: 2.1.2 3963 + is-glob: 4.0.3 3964 + node-addon-api: 7.1.1 3965 + picomatch: 4.0.4 3966 + optionalDependencies: 3967 + '@parcel/watcher-android-arm64': 2.5.6 3968 + '@parcel/watcher-darwin-arm64': 2.5.6 3969 + '@parcel/watcher-darwin-x64': 2.5.6 3970 + '@parcel/watcher-freebsd-x64': 2.5.6 3971 + '@parcel/watcher-linux-arm-glibc': 2.5.6 3972 + '@parcel/watcher-linux-arm-musl': 2.5.6 3973 + '@parcel/watcher-linux-arm64-glibc': 2.5.6 3974 + '@parcel/watcher-linux-arm64-musl': 2.5.6 3975 + '@parcel/watcher-linux-x64-glibc': 2.5.6 3976 + '@parcel/watcher-linux-x64-musl': 2.5.6 3977 + '@parcel/watcher-win32-arm64': 2.5.6 3978 + '@parcel/watcher-win32-ia32': 2.5.6 3979 + '@parcel/watcher-win32-x64': 2.5.6 3980 + 3981 + '@petamoriken/float16@3.9.3': {} 3982 + 3983 + '@pkgjs/parseargs@0.11.0': 3984 + optional: true 3985 + 3986 + '@poppinss/colors@4.1.6': 3987 + dependencies: 3988 + kleur: 4.1.5 3989 + 3990 + '@poppinss/dumper@0.7.0': 3991 + dependencies: 3992 + '@poppinss/colors': 4.1.6 3993 + '@sindresorhus/is': 7.2.0 3994 + supports-color: 10.2.2 3995 + 3996 + '@poppinss/exception@1.2.3': {} 3997 + 3998 + '@rollup/plugin-alias@6.0.0(rollup@4.60.1)': 3999 + optionalDependencies: 4000 + rollup: 4.60.1 4001 + 4002 + '@rollup/plugin-commonjs@29.0.2(rollup@4.60.1)': 4003 + dependencies: 4004 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) 4005 + commondir: 1.0.1 4006 + estree-walker: 2.0.2 4007 + fdir: 6.5.0(picomatch@4.0.4) 4008 + is-reference: 1.2.1 4009 + magic-string: 0.30.21 4010 + picomatch: 4.0.4 4011 + optionalDependencies: 4012 + rollup: 4.60.1 4013 + 4014 + '@rollup/plugin-inject@5.0.5(rollup@4.60.1)': 4015 + dependencies: 4016 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) 4017 + estree-walker: 2.0.2 4018 + magic-string: 0.30.21 4019 + optionalDependencies: 4020 + rollup: 4.60.1 4021 + 4022 + '@rollup/plugin-json@6.1.0(rollup@4.60.1)': 4023 + dependencies: 4024 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) 4025 + optionalDependencies: 4026 + rollup: 4.60.1 4027 + 4028 + '@rollup/plugin-node-resolve@16.0.3(rollup@4.60.1)': 4029 + dependencies: 4030 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) 4031 + '@types/resolve': 1.20.2 4032 + deepmerge: 4.3.1 4033 + is-module: 1.0.0 4034 + resolve: 1.22.11 4035 + optionalDependencies: 4036 + rollup: 4.60.1 4037 + 4038 + '@rollup/plugin-replace@6.0.3(rollup@4.60.1)': 4039 + dependencies: 4040 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) 4041 + magic-string: 0.30.21 4042 + optionalDependencies: 4043 + rollup: 4.60.1 4044 + 4045 + '@rollup/plugin-terser@1.0.0(rollup@4.60.1)': 4046 + dependencies: 4047 + serialize-javascript: 7.0.5 4048 + smob: 1.6.1 4049 + terser: 5.46.1 4050 + optionalDependencies: 4051 + rollup: 4.60.1 4052 + 4053 + '@rollup/pluginutils@5.3.0(rollup@4.60.1)': 4054 + dependencies: 4055 + '@types/estree': 1.0.8 4056 + estree-walker: 2.0.2 4057 + picomatch: 4.0.4 4058 + optionalDependencies: 4059 + rollup: 4.60.1 4060 + 4061 + '@rollup/rollup-android-arm-eabi@4.60.1': 4062 + optional: true 4063 + 4064 + '@rollup/rollup-android-arm64@4.60.1': 4065 + optional: true 4066 + 4067 + '@rollup/rollup-darwin-arm64@4.60.1': 4068 + optional: true 4069 + 4070 + '@rollup/rollup-darwin-x64@4.60.1': 4071 + optional: true 4072 + 4073 + '@rollup/rollup-freebsd-arm64@4.60.1': 4074 + optional: true 4075 + 4076 + '@rollup/rollup-freebsd-x64@4.60.1': 4077 + optional: true 4078 + 4079 + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': 4080 + optional: true 4081 + 4082 + '@rollup/rollup-linux-arm-musleabihf@4.60.1': 4083 + optional: true 4084 + 4085 + '@rollup/rollup-linux-arm64-gnu@4.60.1': 4086 + optional: true 4087 + 4088 + '@rollup/rollup-linux-arm64-musl@4.60.1': 4089 + optional: true 4090 + 4091 + '@rollup/rollup-linux-loong64-gnu@4.60.1': 4092 + optional: true 4093 + 4094 + '@rollup/rollup-linux-loong64-musl@4.60.1': 4095 + optional: true 4096 + 4097 + '@rollup/rollup-linux-ppc64-gnu@4.60.1': 4098 + optional: true 4099 + 4100 + '@rollup/rollup-linux-ppc64-musl@4.60.1': 4101 + optional: true 4102 + 4103 + '@rollup/rollup-linux-riscv64-gnu@4.60.1': 4104 + optional: true 4105 + 4106 + '@rollup/rollup-linux-riscv64-musl@4.60.1': 4107 + optional: true 4108 + 4109 + '@rollup/rollup-linux-s390x-gnu@4.60.1': 4110 + optional: true 4111 + 4112 + '@rollup/rollup-linux-x64-gnu@4.60.1': 4113 + optional: true 4114 + 4115 + '@rollup/rollup-linux-x64-musl@4.60.1': 4116 + optional: true 4117 + 4118 + '@rollup/rollup-openbsd-x64@4.60.1': 4119 + optional: true 4120 + 4121 + '@rollup/rollup-openharmony-arm64@4.60.1': 4122 + optional: true 4123 + 4124 + '@rollup/rollup-win32-arm64-msvc@4.60.1': 4125 + optional: true 4126 + 4127 + '@rollup/rollup-win32-ia32-msvc@4.60.1': 4128 + optional: true 4129 + 4130 + '@rollup/rollup-win32-x64-gnu@4.60.1': 4131 + optional: true 4132 + 4133 + '@rollup/rollup-win32-x64-msvc@4.60.1': 4134 + optional: true 4135 + 4136 + '@shikijs/core@1.29.2': 4137 + dependencies: 4138 + '@shikijs/engine-javascript': 1.29.2 4139 + '@shikijs/engine-oniguruma': 1.29.2 4140 + '@shikijs/types': 1.29.2 4141 + '@shikijs/vscode-textmate': 10.0.2 4142 + '@types/hast': 3.0.4 4143 + hast-util-to-html: 9.0.5 4144 + 4145 + '@shikijs/engine-javascript@1.29.2': 4146 + dependencies: 4147 + '@shikijs/types': 1.29.2 4148 + '@shikijs/vscode-textmate': 10.0.2 4149 + oniguruma-to-es: 2.3.0 4150 + 4151 + '@shikijs/engine-oniguruma@1.29.2': 4152 + dependencies: 4153 + '@shikijs/types': 1.29.2 4154 + '@shikijs/vscode-textmate': 10.0.2 4155 + 4156 + '@shikijs/langs@1.29.2': 4157 + dependencies: 4158 + '@shikijs/types': 1.29.2 4159 + 4160 + '@shikijs/themes@1.29.2': 4161 + dependencies: 4162 + '@shikijs/types': 1.29.2 4163 + 4164 + '@shikijs/types@1.29.2': 4165 + dependencies: 4166 + '@shikijs/vscode-textmate': 10.0.2 4167 + '@types/hast': 3.0.4 4168 + 4169 + '@shikijs/vscode-textmate@10.0.2': {} 4170 + 4171 + '@sindresorhus/is@7.2.0': {} 4172 + 4173 + '@sindresorhus/merge-streams@4.0.0': {} 4174 + 4175 + '@solidjs/meta@0.29.4(solid-js@1.9.12)': 4176 + dependencies: 4177 + solid-js: 1.9.12 4178 + 4179 + '@solidjs/router@0.15.4(solid-js@1.9.12)': 4180 + dependencies: 4181 + solid-js: 1.9.12 4182 + 4183 + '@solidjs/start@1.3.2(solid-js@1.9.12)(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1))(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1))': 4184 + dependencies: 4185 + '@tanstack/server-functions-plugin': 1.121.21(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)) 4186 + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1)) 4187 + '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1)) 4188 + cookie-es: 2.0.0 4189 + defu: 6.1.4 4190 + error-stack-parser: 2.1.4 4191 + html-to-image: 1.11.13 4192 + radix3: 1.1.2 4193 + seroval: 1.5.1 4194 + seroval-plugins: 1.5.1(seroval@1.5.1) 4195 + shiki: 1.29.2 4196 + source-map-js: 1.2.1 4197 + terracotta: 1.1.0(solid-js@1.9.12) 4198 + tinyglobby: 0.2.15 4199 + vinxi: 0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1) 4200 + vite-plugin-solid: 2.11.11(solid-js@1.9.12)(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)) 4201 + transitivePeerDependencies: 4202 + - '@testing-library/jest-dom' 4203 + - solid-js 4204 + - supports-color 4205 + - vite 4206 + 4207 + '@speed-highlight/core@1.2.15': {} 4208 + 4209 + '@tanstack/directive-functions-plugin@1.121.21(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1))': 4210 + dependencies: 4211 + '@babel/code-frame': 7.26.2 4212 + '@babel/core': 7.29.0 4213 + '@babel/traverse': 7.29.0 4214 + '@babel/types': 7.29.0 4215 + '@tanstack/router-utils': 1.161.6 4216 + babel-dead-code-elimination: 1.0.12 4217 + tiny-invariant: 1.3.3 4218 + vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1) 4219 + transitivePeerDependencies: 4220 + - supports-color 4221 + 4222 + '@tanstack/router-utils@1.161.6': 4223 + dependencies: 4224 + '@babel/core': 7.29.0 4225 + '@babel/generator': 7.29.1 4226 + '@babel/parser': 7.29.2 4227 + '@babel/types': 7.29.0 4228 + ansis: 4.2.0 4229 + babel-dead-code-elimination: 1.0.12 4230 + diff: 8.0.4 4231 + pathe: 2.0.3 4232 + tinyglobby: 0.2.15 4233 + transitivePeerDependencies: 4234 + - supports-color 4235 + 4236 + '@tanstack/server-functions-plugin@1.121.21(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1))': 4237 + dependencies: 4238 + '@babel/code-frame': 7.26.2 4239 + '@babel/core': 7.29.0 4240 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) 4241 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) 4242 + '@babel/template': 7.28.6 4243 + '@babel/traverse': 7.29.0 4244 + '@babel/types': 7.29.0 4245 + '@tanstack/directive-functions-plugin': 1.121.21(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)) 4246 + babel-dead-code-elimination: 1.0.12 4247 + tiny-invariant: 1.3.3 4248 + transitivePeerDependencies: 4249 + - supports-color 4250 + - vite 4251 + 4252 + '@types/babel__core@7.20.5': 4253 + dependencies: 4254 + '@babel/parser': 7.29.2 4255 + '@babel/types': 7.29.0 4256 + '@types/babel__generator': 7.27.0 4257 + '@types/babel__template': 7.4.4 4258 + '@types/babel__traverse': 7.28.0 4259 + 4260 + '@types/babel__generator@7.27.0': 4261 + dependencies: 4262 + '@babel/types': 7.29.0 4263 + 4264 + '@types/babel__template@7.4.4': 4265 + dependencies: 4266 + '@babel/parser': 7.29.2 4267 + '@babel/types': 7.29.0 4268 + 4269 + '@types/babel__traverse@7.28.0': 4270 + dependencies: 4271 + '@babel/types': 7.29.0 4272 + 4273 + '@types/braces@3.0.5': {} 4274 + 4275 + '@types/estree@1.0.8': {} 4276 + 4277 + '@types/hast@3.0.4': 4278 + dependencies: 4279 + '@types/unist': 3.0.3 4280 + 4281 + '@types/mdast@4.0.4': 4282 + dependencies: 4283 + '@types/unist': 3.0.3 4284 + 4285 + '@types/micromatch@4.0.10': 4286 + dependencies: 4287 + '@types/braces': 3.0.5 4288 + 4289 + '@types/node@25.5.0': 4290 + dependencies: 4291 + undici-types: 7.18.2 4292 + 4293 + '@types/resolve@1.20.2': {} 4294 + 4295 + '@types/unist@3.0.3': {} 4296 + 4297 + '@ungap/structured-clone@1.3.0': {} 4298 + 4299 + '@vercel/nft@1.5.0(rollup@4.60.1)': 4300 + dependencies: 4301 + '@mapbox/node-pre-gyp': 2.0.3 4302 + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) 4303 + acorn: 8.16.0 4304 + acorn-import-attributes: 1.9.5(acorn@8.16.0) 4305 + async-sema: 3.1.1 4306 + bindings: 1.5.0 4307 + estree-walker: 2.0.2 4308 + glob: 13.0.6 4309 + graceful-fs: 4.2.11 4310 + node-gyp-build: 4.8.4 4311 + picomatch: 4.0.4 4312 + resolve-from: 5.0.0 4313 + transitivePeerDependencies: 4314 + - encoding 4315 + - rollup 4316 + - supports-color 4317 + 4318 + '@vinxi/listhen@1.5.6': 4319 + dependencies: 4320 + '@parcel/watcher': 2.5.6 4321 + '@parcel/watcher-wasm': 2.3.0 4322 + citty: 0.1.6 4323 + clipboardy: 4.0.0 4324 + consola: 3.4.2 4325 + defu: 6.1.4 4326 + get-port-please: 3.2.0 4327 + h3: 1.15.3 4328 + http-shutdown: 1.2.2 4329 + jiti: 1.21.7 4330 + mlly: 1.8.2 4331 + node-forge: 1.4.0 4332 + pathe: 1.1.2 4333 + std-env: 3.10.0 4334 + ufo: 1.6.3 4335 + untun: 0.1.3 4336 + uqr: 0.1.2 4337 + 4338 + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1))': 4339 + dependencies: 4340 + '@babel/parser': 7.29.2 4341 + acorn: 8.16.0 4342 + acorn-jsx: 5.3.2(acorn@8.16.0) 4343 + acorn-loose: 8.5.2 4344 + acorn-typescript: 1.4.13(acorn@8.16.0) 4345 + astring: 1.9.0 4346 + magicast: 0.2.11 4347 + recast: 0.23.11 4348 + tslib: 2.8.1 4349 + vinxi: 0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1) 4350 + 4351 + '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1))': 4352 + dependencies: 4353 + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1)) 4354 + acorn: 8.16.0 4355 + acorn-loose: 8.5.2 4356 + acorn-typescript: 1.4.13(acorn@8.16.0) 4357 + astring: 1.9.0 4358 + magicast: 0.2.11 4359 + recast: 0.23.11 4360 + vinxi: 0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1) 4361 + 4362 + abbrev@3.0.1: {} 4363 + 4364 + abort-controller@3.0.0: 4365 + dependencies: 4366 + event-target-shim: 5.0.1 4367 + 4368 + acorn-import-attributes@1.9.5(acorn@8.16.0): 4369 + dependencies: 4370 + acorn: 8.16.0 4371 + 4372 + acorn-jsx@5.3.2(acorn@8.16.0): 4373 + dependencies: 4374 + acorn: 8.16.0 4375 + 4376 + acorn-loose@8.5.2: 4377 + dependencies: 4378 + acorn: 8.16.0 4379 + 4380 + acorn-typescript@1.4.13(acorn@8.16.0): 4381 + dependencies: 4382 + acorn: 8.16.0 4383 + 4384 + acorn@8.16.0: {} 4385 + 4386 + agent-base@7.1.4: {} 4387 + 4388 + ansi-align@3.0.1: 4389 + dependencies: 4390 + string-width: 4.2.3 4391 + 4392 + ansi-regex@5.0.1: {} 4393 + 4394 + ansi-regex@6.2.2: {} 4395 + 4396 + ansi-styles@4.3.0: 4397 + dependencies: 4398 + color-convert: 2.0.1 4399 + 4400 + ansi-styles@6.2.3: {} 4401 + 4402 + ansis@4.2.0: {} 4403 + 4404 + anymatch@3.1.3: 4405 + dependencies: 4406 + normalize-path: 3.0.0 4407 + picomatch: 2.3.2 4408 + 4409 + archiver-utils@5.0.2: 4410 + dependencies: 4411 + glob: 10.5.0 4412 + graceful-fs: 4.2.11 4413 + is-stream: 2.0.1 4414 + lazystream: 1.0.1 4415 + lodash: 4.17.23 4416 + normalize-path: 3.0.0 4417 + readable-stream: 4.7.0 4418 + 4419 + archiver@7.0.1: 4420 + dependencies: 4421 + archiver-utils: 5.0.2 4422 + async: 3.2.6 4423 + buffer-crc32: 1.0.0 4424 + readable-stream: 4.7.0 4425 + readdir-glob: 1.1.3 4426 + tar-stream: 3.1.8 4427 + zip-stream: 6.0.1 4428 + transitivePeerDependencies: 4429 + - bare-abort-controller 4430 + - bare-buffer 4431 + - react-native-b4a 4432 + 4433 + ast-types@0.16.1: 4434 + dependencies: 4435 + tslib: 2.8.1 4436 + 4437 + astring@1.9.0: {} 4438 + 4439 + async-sema@3.1.1: {} 4440 + 4441 + async@3.2.6: {} 4442 + 4443 + await-lock@2.2.2: {} 4444 + 4445 + b4a@1.8.0: {} 4446 + 4447 + babel-dead-code-elimination@1.0.12: 4448 + dependencies: 4449 + '@babel/core': 7.29.0 4450 + '@babel/parser': 7.29.2 4451 + '@babel/traverse': 7.29.0 4452 + '@babel/types': 7.29.0 4453 + transitivePeerDependencies: 4454 + - supports-color 4455 + 4456 + babel-plugin-jsx-dom-expressions@0.40.6(@babel/core@7.29.0): 4457 + dependencies: 4458 + '@babel/core': 7.29.0 4459 + '@babel/helper-module-imports': 7.18.6 4460 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) 4461 + '@babel/types': 7.29.0 4462 + html-entities: 2.3.3 4463 + parse5: 7.3.0 4464 + 4465 + babel-preset-solid@1.9.12(@babel/core@7.29.0)(solid-js@1.9.12): 4466 + dependencies: 4467 + '@babel/core': 7.29.0 4468 + babel-plugin-jsx-dom-expressions: 0.40.6(@babel/core@7.29.0) 4469 + optionalDependencies: 4470 + solid-js: 1.9.12 4471 + 4472 + balanced-match@1.0.2: {} 4473 + 4474 + balanced-match@4.0.4: {} 4475 + 4476 + bare-events@2.8.2: {} 4477 + 4478 + bare-fs@4.5.6: 4479 + dependencies: 4480 + bare-events: 2.8.2 4481 + bare-path: 3.0.0 4482 + bare-stream: 2.11.0(bare-events@2.8.2) 4483 + bare-url: 2.4.0 4484 + fast-fifo: 1.3.2 4485 + transitivePeerDependencies: 4486 + - bare-abort-controller 4487 + - react-native-b4a 4488 + 4489 + bare-os@3.8.6: {} 4490 + 4491 + bare-path@3.0.0: 4492 + dependencies: 4493 + bare-os: 3.8.6 4494 + 4495 + bare-stream@2.11.0(bare-events@2.8.2): 4496 + dependencies: 4497 + streamx: 2.25.0 4498 + teex: 1.0.1 4499 + optionalDependencies: 4500 + bare-events: 2.8.2 4501 + transitivePeerDependencies: 4502 + - react-native-b4a 4503 + 4504 + bare-url@2.4.0: 4505 + dependencies: 4506 + bare-path: 3.0.0 4507 + 4508 + base64-js@1.5.1: {} 4509 + 4510 + baseline-browser-mapping@2.10.13: {} 4511 + 4512 + bindings@1.5.0: 4513 + dependencies: 4514 + file-uri-to-path: 1.0.0 4515 + 4516 + boxen@8.0.1: 4517 + dependencies: 4518 + ansi-align: 3.0.1 4519 + camelcase: 8.0.0 4520 + chalk: 5.6.2 4521 + cli-boxes: 3.0.0 4522 + string-width: 7.2.0 4523 + type-fest: 4.41.0 4524 + widest-line: 5.0.0 4525 + wrap-ansi: 9.0.2 4526 + 4527 + brace-expansion@2.0.3: 4528 + dependencies: 4529 + balanced-match: 1.0.2 4530 + 4531 + brace-expansion@5.0.5: 4532 + dependencies: 4533 + balanced-match: 4.0.4 4534 + 4535 + braces@3.0.3: 4536 + dependencies: 4537 + fill-range: 7.1.1 4538 + 4539 + browserslist@4.28.2: 4540 + dependencies: 4541 + baseline-browser-mapping: 2.10.13 4542 + caniuse-lite: 1.0.30001782 4543 + electron-to-chromium: 1.5.329 4544 + node-releases: 2.0.36 4545 + update-browserslist-db: 1.2.3(browserslist@4.28.2) 4546 + 4547 + buffer-crc32@1.0.0: {} 4548 + 4549 + buffer-from@1.1.2: {} 4550 + 4551 + buffer@6.0.3: 4552 + dependencies: 4553 + base64-js: 1.5.1 4554 + ieee754: 1.2.1 4555 + 4556 + bundle-name@4.1.0: 4557 + dependencies: 4558 + run-applescript: 7.1.0 4559 + 4560 + c12@3.3.3(magicast@0.5.2): 4561 + dependencies: 4562 + chokidar: 5.0.0 4563 + confbox: 0.2.4 4564 + defu: 6.1.4 4565 + dotenv: 17.3.1 4566 + exsolve: 1.0.8 4567 + giget: 2.0.0 4568 + jiti: 2.6.1 4569 + ohash: 2.0.11 4570 + pathe: 2.0.3 4571 + perfect-debounce: 2.1.0 4572 + pkg-types: 2.3.0 4573 + rc9: 2.1.2 4574 + optionalDependencies: 4575 + magicast: 0.5.2 4576 + 4577 + camelcase@8.0.0: {} 4578 + 4579 + caniuse-lite@1.0.30001782: {} 4580 + 4581 + ccount@2.0.1: {} 4582 + 4583 + chalk@5.6.2: {} 4584 + 4585 + character-entities-html4@2.1.0: {} 4586 + 4587 + character-entities-legacy@3.0.0: {} 4588 + 4589 + chokidar@4.0.3: 4590 + dependencies: 4591 + readdirp: 4.1.2 4592 + 4593 + chokidar@5.0.0: 4594 + dependencies: 4595 + readdirp: 5.0.0 4596 + 4597 + chownr@3.0.0: {} 4598 + 4599 + citty@0.1.6: 4600 + dependencies: 4601 + consola: 3.4.2 4602 + 4603 + citty@0.2.1: {} 4604 + 4605 + cli-boxes@3.0.0: {} 4606 + 4607 + clipboardy@4.0.0: 4608 + dependencies: 4609 + execa: 8.0.1 4610 + is-wsl: 3.1.1 4611 + is64bit: 2.0.0 4612 + 4613 + cliui@9.0.1: 4614 + dependencies: 4615 + string-width: 7.2.0 4616 + strip-ansi: 7.2.0 4617 + wrap-ansi: 9.0.2 4618 + 4619 + cluster-key-slot@1.1.2: {} 4620 + 4621 + color-convert@2.0.1: 4622 + dependencies: 4623 + color-name: 1.1.4 4624 + 4625 + color-name@1.1.4: {} 4626 + 4627 + comma-separated-tokens@2.0.3: {} 4628 + 4629 + commander@2.20.3: {} 4630 + 4631 + commondir@1.0.1: {} 4632 + 4633 + compatx@0.2.0: {} 4634 + 4635 + compress-commons@6.0.2: 4636 + dependencies: 4637 + crc-32: 1.2.2 4638 + crc32-stream: 6.0.0 4639 + is-stream: 2.0.1 4640 + normalize-path: 3.0.0 4641 + readable-stream: 4.7.0 4642 + 4643 + confbox@0.1.8: {} 4644 + 4645 + confbox@0.2.4: {} 4646 + 4647 + consola@3.4.2: {} 4648 + 4649 + convert-source-map@2.0.0: {} 4650 + 4651 + cookie-es@1.2.2: {} 4652 + 4653 + cookie-es@2.0.0: {} 4654 + 4655 + cookie-es@3.1.1: {} 4656 + 4657 + core-js@3.49.0: {} 4658 + 4659 + core-util-is@1.0.3: {} 4660 + 4661 + crc-32@1.2.2: {} 4662 + 4663 + crc32-stream@6.0.0: 4664 + dependencies: 4665 + crc-32: 1.2.2 4666 + readable-stream: 4.7.0 4667 + 4668 + croner@10.0.1: {} 4669 + 4670 + cross-spawn@7.0.6: 4671 + dependencies: 4672 + path-key: 3.1.1 4673 + shebang-command: 2.0.0 4674 + which: 2.0.2 4675 + 4676 + crossws@0.3.5: 4677 + dependencies: 4678 + uncrypto: 0.1.3 4679 + 4680 + csstype@3.2.3: {} 4681 + 4682 + dax-sh@0.43.2: 4683 + dependencies: 4684 + '@deno/shim-deno': 0.19.2 4685 + undici-types: 5.28.4 4686 + 4687 + db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)): 4688 + optionalDependencies: 4689 + drizzle-orm: 0.39.3(postgres@3.4.8) 4690 + 4691 + debug@2.6.9: 4692 + dependencies: 4693 + ms: 2.0.0 4694 + 4695 + debug@4.4.3: 4696 + dependencies: 4697 + ms: 2.1.3 4698 + 4699 + deepmerge@4.3.1: {} 4700 + 4701 + default-browser-id@5.0.1: {} 4702 + 4703 + default-browser@5.5.0: 4704 + dependencies: 4705 + bundle-name: 4.1.0 4706 + default-browser-id: 5.0.1 4707 + 4708 + define-lazy-prop@3.0.0: {} 4709 + 4710 + defu@6.1.4: {} 4711 + 4712 + denque@2.1.0: {} 4713 + 4714 + depd@2.0.0: {} 4715 + 4716 + dequal@2.0.3: {} 4717 + 4718 + destr@2.0.5: {} 4719 + 4720 + destroy@1.2.0: {} 4721 + 4722 + detect-libc@2.1.2: {} 4723 + 4724 + devlop@1.1.0: 4725 + dependencies: 4726 + dequal: 2.0.3 4727 + 4728 + diff@8.0.4: {} 4729 + 4730 + dot-prop@10.1.0: 4731 + dependencies: 4732 + type-fest: 5.5.0 4733 + 4734 + dotenv@17.3.1: {} 4735 + 4736 + drizzle-kit@0.30.6: 4737 + dependencies: 4738 + '@drizzle-team/brocli': 0.10.2 4739 + '@esbuild-kit/esm-loader': 2.6.5 4740 + esbuild: 0.19.12 4741 + esbuild-register: 3.6.0(esbuild@0.19.12) 4742 + gel: 2.2.0 4743 + transitivePeerDependencies: 4744 + - supports-color 4745 + 4746 + drizzle-orm@0.39.3(postgres@3.4.8): 4747 + optionalDependencies: 4748 + postgres: 3.4.8 4749 + 4750 + duplexer@0.1.2: {} 4751 + 4752 + eastasianwidth@0.2.0: {} 4753 + 4754 + ee-first@1.1.1: {} 4755 + 4756 + electron-to-chromium@1.5.329: {} 4757 + 4758 + emoji-regex-xs@1.0.0: {} 4759 + 4760 + emoji-regex@10.6.0: {} 4761 + 4762 + emoji-regex@8.0.0: {} 4763 + 4764 + emoji-regex@9.2.2: {} 4765 + 4766 + encodeurl@2.0.0: {} 4767 + 4768 + entities@6.0.1: {} 4769 + 4770 + env-paths@3.0.0: {} 4771 + 4772 + error-stack-parser-es@1.0.5: {} 4773 + 4774 + error-stack-parser@2.1.4: 4775 + dependencies: 4776 + stackframe: 1.3.4 4777 + 4778 + es-module-lexer@1.7.0: {} 4779 + 4780 + esbuild-register@3.6.0(esbuild@0.19.12): 4781 + dependencies: 4782 + debug: 4.4.3 4783 + esbuild: 0.19.12 4784 + transitivePeerDependencies: 4785 + - supports-color 4786 + 4787 + esbuild@0.18.20: 4788 + optionalDependencies: 4789 + '@esbuild/android-arm': 0.18.20 4790 + '@esbuild/android-arm64': 0.18.20 4791 + '@esbuild/android-x64': 0.18.20 4792 + '@esbuild/darwin-arm64': 0.18.20 4793 + '@esbuild/darwin-x64': 0.18.20 4794 + '@esbuild/freebsd-arm64': 0.18.20 4795 + '@esbuild/freebsd-x64': 0.18.20 4796 + '@esbuild/linux-arm': 0.18.20 4797 + '@esbuild/linux-arm64': 0.18.20 4798 + '@esbuild/linux-ia32': 0.18.20 4799 + '@esbuild/linux-loong64': 0.18.20 4800 + '@esbuild/linux-mips64el': 0.18.20 4801 + '@esbuild/linux-ppc64': 0.18.20 4802 + '@esbuild/linux-riscv64': 0.18.20 4803 + '@esbuild/linux-s390x': 0.18.20 4804 + '@esbuild/linux-x64': 0.18.20 4805 + '@esbuild/netbsd-x64': 0.18.20 4806 + '@esbuild/openbsd-x64': 0.18.20 4807 + '@esbuild/sunos-x64': 0.18.20 4808 + '@esbuild/win32-arm64': 0.18.20 4809 + '@esbuild/win32-ia32': 0.18.20 4810 + '@esbuild/win32-x64': 0.18.20 4811 + 4812 + esbuild@0.19.12: 4813 + optionalDependencies: 4814 + '@esbuild/aix-ppc64': 0.19.12 4815 + '@esbuild/android-arm': 0.19.12 4816 + '@esbuild/android-arm64': 0.19.12 4817 + '@esbuild/android-x64': 0.19.12 4818 + '@esbuild/darwin-arm64': 0.19.12 4819 + '@esbuild/darwin-x64': 0.19.12 4820 + '@esbuild/freebsd-arm64': 0.19.12 4821 + '@esbuild/freebsd-x64': 0.19.12 4822 + '@esbuild/linux-arm': 0.19.12 4823 + '@esbuild/linux-arm64': 0.19.12 4824 + '@esbuild/linux-ia32': 0.19.12 4825 + '@esbuild/linux-loong64': 0.19.12 4826 + '@esbuild/linux-mips64el': 0.19.12 4827 + '@esbuild/linux-ppc64': 0.19.12 4828 + '@esbuild/linux-riscv64': 0.19.12 4829 + '@esbuild/linux-s390x': 0.19.12 4830 + '@esbuild/linux-x64': 0.19.12 4831 + '@esbuild/netbsd-x64': 0.19.12 4832 + '@esbuild/openbsd-x64': 0.19.12 4833 + '@esbuild/sunos-x64': 0.19.12 4834 + '@esbuild/win32-arm64': 0.19.12 4835 + '@esbuild/win32-ia32': 0.19.12 4836 + '@esbuild/win32-x64': 0.19.12 4837 + 4838 + esbuild@0.25.12: 4839 + optionalDependencies: 4840 + '@esbuild/aix-ppc64': 0.25.12 4841 + '@esbuild/android-arm': 0.25.12 4842 + '@esbuild/android-arm64': 0.25.12 4843 + '@esbuild/android-x64': 0.25.12 4844 + '@esbuild/darwin-arm64': 0.25.12 4845 + '@esbuild/darwin-x64': 0.25.12 4846 + '@esbuild/freebsd-arm64': 0.25.12 4847 + '@esbuild/freebsd-x64': 0.25.12 4848 + '@esbuild/linux-arm': 0.25.12 4849 + '@esbuild/linux-arm64': 0.25.12 4850 + '@esbuild/linux-ia32': 0.25.12 4851 + '@esbuild/linux-loong64': 0.25.12 4852 + '@esbuild/linux-mips64el': 0.25.12 4853 + '@esbuild/linux-ppc64': 0.25.12 4854 + '@esbuild/linux-riscv64': 0.25.12 4855 + '@esbuild/linux-s390x': 0.25.12 4856 + '@esbuild/linux-x64': 0.25.12 4857 + '@esbuild/netbsd-arm64': 0.25.12 4858 + '@esbuild/netbsd-x64': 0.25.12 4859 + '@esbuild/openbsd-arm64': 0.25.12 4860 + '@esbuild/openbsd-x64': 0.25.12 4861 + '@esbuild/openharmony-arm64': 0.25.12 4862 + '@esbuild/sunos-x64': 0.25.12 4863 + '@esbuild/win32-arm64': 0.25.12 4864 + '@esbuild/win32-ia32': 0.25.12 4865 + '@esbuild/win32-x64': 0.25.12 4866 + 4867 + esbuild@0.27.4: 4868 + optionalDependencies: 4869 + '@esbuild/aix-ppc64': 0.27.4 4870 + '@esbuild/android-arm': 0.27.4 4871 + '@esbuild/android-arm64': 0.27.4 4872 + '@esbuild/android-x64': 0.27.4 4873 + '@esbuild/darwin-arm64': 0.27.4 4874 + '@esbuild/darwin-x64': 0.27.4 4875 + '@esbuild/freebsd-arm64': 0.27.4 4876 + '@esbuild/freebsd-x64': 0.27.4 4877 + '@esbuild/linux-arm': 0.27.4 4878 + '@esbuild/linux-arm64': 0.27.4 4879 + '@esbuild/linux-ia32': 0.27.4 4880 + '@esbuild/linux-loong64': 0.27.4 4881 + '@esbuild/linux-mips64el': 0.27.4 4882 + '@esbuild/linux-ppc64': 0.27.4 4883 + '@esbuild/linux-riscv64': 0.27.4 4884 + '@esbuild/linux-s390x': 0.27.4 4885 + '@esbuild/linux-x64': 0.27.4 4886 + '@esbuild/netbsd-arm64': 0.27.4 4887 + '@esbuild/netbsd-x64': 0.27.4 4888 + '@esbuild/openbsd-arm64': 0.27.4 4889 + '@esbuild/openbsd-x64': 0.27.4 4890 + '@esbuild/openharmony-arm64': 0.27.4 4891 + '@esbuild/sunos-x64': 0.27.4 4892 + '@esbuild/win32-arm64': 0.27.4 4893 + '@esbuild/win32-ia32': 0.27.4 4894 + '@esbuild/win32-x64': 0.27.4 4895 + 4896 + escalade@3.2.0: {} 4897 + 4898 + escape-html@1.0.3: {} 4899 + 4900 + escape-string-regexp@5.0.0: {} 4901 + 4902 + esprima@4.0.1: {} 4903 + 4904 + estree-walker@2.0.2: {} 4905 + 4906 + estree-walker@3.0.3: 4907 + dependencies: 4908 + '@types/estree': 1.0.8 4909 + 4910 + etag@1.8.1: {} 4911 + 4912 + event-target-shim@5.0.1: {} 4913 + 4914 + eventemitter3@4.0.7: {} 4915 + 4916 + events-universal@1.0.1: 4917 + dependencies: 4918 + bare-events: 2.8.2 4919 + transitivePeerDependencies: 4920 + - bare-abort-controller 4921 + 4922 + events@3.3.0: {} 4923 + 4924 + execa@8.0.1: 4925 + dependencies: 4926 + cross-spawn: 7.0.6 4927 + get-stream: 8.0.1 4928 + human-signals: 5.0.0 4929 + is-stream: 3.0.0 4930 + merge-stream: 2.0.0 4931 + npm-run-path: 5.3.0 4932 + onetime: 6.0.0 4933 + signal-exit: 4.1.0 4934 + strip-final-newline: 3.0.0 4935 + 4936 + exsolve@1.0.8: {} 4937 + 4938 + fast-fifo@1.3.2: {} 4939 + 4940 + fast-glob@3.3.3: 4941 + dependencies: 4942 + '@nodelib/fs.stat': 2.0.5 4943 + '@nodelib/fs.walk': 1.2.8 4944 + glob-parent: 5.1.2 4945 + merge2: 1.4.1 4946 + micromatch: 4.0.8 4947 + 4948 + fastq@1.20.1: 4949 + dependencies: 4950 + reusify: 1.1.0 4951 + 4952 + fdir@6.5.0(picomatch@4.0.4): 4953 + optionalDependencies: 4954 + picomatch: 4.0.4 4955 + 4956 + file-uri-to-path@1.0.0: {} 4957 + 4958 + fill-range@7.1.1: 4959 + dependencies: 4960 + to-regex-range: 5.0.1 4961 + 4962 + follow-redirects@1.15.11: {} 4963 + 4964 + foreground-child@3.3.1: 4965 + dependencies: 4966 + cross-spawn: 7.0.6 4967 + signal-exit: 4.1.0 4968 + 4969 + fresh@0.5.2: {} 4970 + 4971 + fresh@2.0.0: {} 4972 + 4973 + fsevents@2.3.3: 4974 + optional: true 4975 + 4976 + function-bind@1.1.2: {} 4977 + 4978 + gel@2.2.0: 4979 + dependencies: 4980 + '@petamoriken/float16': 3.9.3 4981 + debug: 4.4.3 4982 + env-paths: 3.0.0 4983 + semver: 7.7.4 4984 + shell-quote: 1.8.3 4985 + which: 4.0.0 4986 + transitivePeerDependencies: 4987 + - supports-color 4988 + 4989 + gensync@1.0.0-beta.2: {} 4990 + 4991 + get-caller-file@2.0.5: {} 4992 + 4993 + get-east-asian-width@1.5.0: {} 4994 + 4995 + get-port-please@3.2.0: {} 4996 + 4997 + get-stream@8.0.1: {} 4998 + 4999 + get-tsconfig@4.13.7: 5000 + dependencies: 5001 + resolve-pkg-maps: 1.0.0 5002 + 5003 + giget@2.0.0: 5004 + dependencies: 5005 + citty: 0.1.6 5006 + consola: 3.4.2 5007 + defu: 6.1.4 5008 + node-fetch-native: 1.6.7 5009 + nypm: 0.6.5 5010 + pathe: 2.0.3 5011 + 5012 + glob-parent@5.1.2: 5013 + dependencies: 5014 + is-glob: 4.0.3 5015 + 5016 + glob@10.5.0: 5017 + dependencies: 5018 + foreground-child: 3.3.1 5019 + jackspeak: 3.4.3 5020 + minimatch: 9.0.9 5021 + minipass: 7.1.3 5022 + package-json-from-dist: 1.0.1 5023 + path-scurry: 1.11.1 5024 + 5025 + glob@13.0.6: 5026 + dependencies: 5027 + minimatch: 10.2.5 5028 + minipass: 7.1.3 5029 + path-scurry: 2.0.2 5030 + 5031 + globby@16.2.0: 5032 + dependencies: 5033 + '@sindresorhus/merge-streams': 4.0.0 5034 + fast-glob: 3.3.3 5035 + ignore: 7.0.5 5036 + is-path-inside: 4.0.0 5037 + slash: 5.1.0 5038 + unicorn-magic: 0.4.0 5039 + 5040 + graceful-fs@4.2.11: {} 5041 + 5042 + gzip-size@7.0.0: 5043 + dependencies: 5044 + duplexer: 0.1.2 5045 + 5046 + h3@1.15.10: 5047 + dependencies: 5048 + cookie-es: 1.2.2 5049 + crossws: 0.3.5 5050 + defu: 6.1.4 5051 + destr: 2.0.5 5052 + iron-webcrypto: 1.2.1 5053 + node-mock-http: 1.0.4 5054 + radix3: 1.1.2 5055 + ufo: 1.6.3 5056 + uncrypto: 0.1.3 5057 + 5058 + h3@1.15.3: 5059 + dependencies: 5060 + cookie-es: 1.2.2 5061 + crossws: 0.3.5 5062 + defu: 6.1.4 5063 + destr: 2.0.5 5064 + iron-webcrypto: 1.2.1 5065 + node-mock-http: 1.0.4 5066 + radix3: 1.1.2 5067 + ufo: 1.6.3 5068 + uncrypto: 0.1.3 5069 + 5070 + hasown@2.0.2: 5071 + dependencies: 5072 + function-bind: 1.1.2 5073 + 5074 + hast-util-to-html@9.0.5: 5075 + dependencies: 5076 + '@types/hast': 3.0.4 5077 + '@types/unist': 3.0.3 5078 + ccount: 2.0.1 5079 + comma-separated-tokens: 2.0.3 5080 + hast-util-whitespace: 3.0.0 5081 + html-void-elements: 3.0.0 5082 + mdast-util-to-hast: 13.2.1 5083 + property-information: 7.1.0 5084 + space-separated-tokens: 2.0.2 5085 + stringify-entities: 4.0.4 5086 + zwitch: 2.0.4 5087 + 5088 + hast-util-whitespace@3.0.0: 5089 + dependencies: 5090 + '@types/hast': 3.0.4 5091 + 5092 + hookable@5.5.3: {} 5093 + 5094 + html-entities@2.3.3: {} 5095 + 5096 + html-to-image@1.11.13: {} 5097 + 5098 + html-void-elements@3.0.0: {} 5099 + 5100 + http-errors@2.0.1: 5101 + dependencies: 5102 + depd: 2.0.0 5103 + inherits: 2.0.4 5104 + setprototypeof: 1.2.0 5105 + statuses: 2.0.2 5106 + toidentifier: 1.0.1 5107 + 5108 + http-proxy@1.18.1: 5109 + dependencies: 5110 + eventemitter3: 4.0.7 5111 + follow-redirects: 1.15.11 5112 + requires-port: 1.0.0 5113 + transitivePeerDependencies: 5114 + - debug 5115 + 5116 + http-shutdown@1.2.2: {} 5117 + 5118 + https-proxy-agent@7.0.6: 5119 + dependencies: 5120 + agent-base: 7.1.4 5121 + debug: 4.4.3 5122 + transitivePeerDependencies: 5123 + - supports-color 5124 + 5125 + httpxy@0.3.1: {} 5126 + 5127 + human-signals@5.0.0: {} 5128 + 5129 + ieee754@1.2.1: {} 5130 + 5131 + ignore@7.0.5: {} 5132 + 5133 + inherits@2.0.4: {} 5134 + 5135 + ioredis@5.10.1: 5136 + dependencies: 5137 + '@ioredis/commands': 1.5.1 5138 + cluster-key-slot: 1.1.2 5139 + debug: 4.4.3 5140 + denque: 2.1.0 5141 + lodash.defaults: 4.2.0 5142 + lodash.isarguments: 3.1.0 5143 + redis-errors: 1.2.0 5144 + redis-parser: 3.0.0 5145 + standard-as-callback: 2.1.0 5146 + transitivePeerDependencies: 5147 + - supports-color 5148 + 5149 + ipaddr.js@2.3.0: {} 5150 + 5151 + iron-webcrypto@1.2.1: {} 5152 + 5153 + is-core-module@2.16.1: 5154 + dependencies: 5155 + hasown: 2.0.2 5156 + 5157 + is-docker@3.0.0: {} 5158 + 5159 + is-extglob@2.1.1: {} 5160 + 5161 + is-fullwidth-code-point@3.0.0: {} 5162 + 5163 + is-glob@4.0.3: 5164 + dependencies: 5165 + is-extglob: 2.1.1 5166 + 5167 + is-in-ssh@1.0.0: {} 5168 + 5169 + is-inside-container@1.0.0: 5170 + dependencies: 5171 + is-docker: 3.0.0 5172 + 5173 + is-module@1.0.0: {} 5174 + 5175 + is-number@7.0.0: {} 5176 + 5177 + is-path-inside@4.0.0: {} 5178 + 5179 + is-reference@1.2.1: 5180 + dependencies: 5181 + '@types/estree': 1.0.8 5182 + 5183 + is-stream@2.0.1: {} 5184 + 5185 + is-stream@3.0.0: {} 5186 + 5187 + is-what@4.1.16: {} 5188 + 5189 + is-wsl@3.1.1: 5190 + dependencies: 5191 + is-inside-container: 1.0.0 5192 + 5193 + is64bit@2.0.0: 5194 + dependencies: 5195 + system-architecture: 0.1.0 5196 + 5197 + isarray@1.0.0: {} 5198 + 5199 + isexe@2.0.0: {} 5200 + 5201 + isexe@3.1.5: {} 5202 + 5203 + iso-datestring-validator@2.2.2: {} 5204 + 5205 + jackspeak@3.4.3: 5206 + dependencies: 5207 + '@isaacs/cliui': 8.0.2 5208 + optionalDependencies: 5209 + '@pkgjs/parseargs': 0.11.0 5210 + 5211 + jiti@1.21.7: {} 5212 + 5213 + jiti@2.6.1: {} 5214 + 5215 + jose@5.10.0: {} 5216 + 5217 + jose@6.2.2: {} 5218 + 5219 + js-tokens@4.0.0: {} 5220 + 5221 + js-tokens@9.0.1: {} 5222 + 5223 + jsesc@3.1.0: {} 5224 + 5225 + json5@2.2.3: {} 5226 + 5227 + kleur@4.1.5: {} 5228 + 5229 + klona@2.0.6: {} 5230 + 5231 + knitwork@1.3.0: {} 5232 + 5233 + lazystream@1.0.1: 5234 + dependencies: 5235 + readable-stream: 2.3.8 5236 + 5237 + listhen@1.9.0: 5238 + dependencies: 5239 + '@parcel/watcher': 2.5.6 5240 + '@parcel/watcher-wasm': 2.5.6 5241 + citty: 0.1.6 5242 + clipboardy: 4.0.0 5243 + consola: 3.4.2 5244 + crossws: 0.3.5 5245 + defu: 6.1.4 5246 + get-port-please: 3.2.0 5247 + h3: 1.15.10 5248 + http-shutdown: 1.2.2 5249 + jiti: 2.6.1 5250 + mlly: 1.8.2 5251 + node-forge: 1.4.0 5252 + pathe: 1.1.2 5253 + std-env: 3.10.0 5254 + ufo: 1.6.3 5255 + untun: 0.1.3 5256 + uqr: 0.1.2 5257 + 5258 + local-pkg@1.1.2: 5259 + dependencies: 5260 + mlly: 1.8.2 5261 + pkg-types: 2.3.0 5262 + quansync: 0.2.11 5263 + 5264 + lodash.defaults@4.2.0: {} 5265 + 5266 + lodash.isarguments@3.1.0: {} 5267 + 5268 + lodash@4.17.23: {} 5269 + 5270 + lru-cache@10.4.3: {} 5271 + 5272 + lru-cache@11.2.7: {} 5273 + 5274 + lru-cache@5.1.1: 5275 + dependencies: 5276 + yallist: 3.1.1 5277 + 5278 + magic-string@0.30.21: 5279 + dependencies: 5280 + '@jridgewell/sourcemap-codec': 1.5.5 5281 + 5282 + magicast@0.2.11: 5283 + dependencies: 5284 + '@babel/parser': 7.29.2 5285 + '@babel/types': 7.29.0 5286 + recast: 0.23.11 5287 + 5288 + magicast@0.5.2: 5289 + dependencies: 5290 + '@babel/parser': 7.29.2 5291 + '@babel/types': 7.29.0 5292 + source-map-js: 1.2.1 5293 + 5294 + mdast-util-to-hast@13.2.1: 5295 + dependencies: 5296 + '@types/hast': 3.0.4 5297 + '@types/mdast': 4.0.4 5298 + '@ungap/structured-clone': 1.3.0 5299 + devlop: 1.1.0 5300 + micromark-util-sanitize-uri: 2.0.1 5301 + trim-lines: 3.0.1 5302 + unist-util-position: 5.0.0 5303 + unist-util-visit: 5.1.0 5304 + vfile: 6.0.3 5305 + 5306 + merge-anything@5.1.7: 5307 + dependencies: 5308 + is-what: 4.1.16 5309 + 5310 + merge-stream@2.0.0: {} 5311 + 5312 + merge2@1.4.1: {} 5313 + 5314 + micromark-util-character@2.1.1: 5315 + dependencies: 5316 + micromark-util-symbol: 2.0.1 5317 + micromark-util-types: 2.0.2 5318 + 5319 + micromark-util-encode@2.0.1: {} 5320 + 5321 + micromark-util-sanitize-uri@2.0.1: 5322 + dependencies: 5323 + micromark-util-character: 2.1.1 5324 + micromark-util-encode: 2.0.1 5325 + micromark-util-symbol: 2.0.1 5326 + 5327 + micromark-util-symbol@2.0.1: {} 5328 + 5329 + micromark-util-types@2.0.2: {} 5330 + 5331 + micromatch@4.0.8: 5332 + dependencies: 5333 + braces: 3.0.3 5334 + picomatch: 2.3.2 5335 + 5336 + mime-db@1.54.0: {} 5337 + 5338 + mime-types@3.0.2: 5339 + dependencies: 5340 + mime-db: 1.54.0 5341 + 5342 + mime@1.6.0: {} 5343 + 5344 + mime@3.0.0: {} 5345 + 5346 + mime@4.1.0: {} 5347 + 5348 + mimic-fn@4.0.0: {} 5349 + 5350 + minimatch@10.2.5: 5351 + dependencies: 5352 + brace-expansion: 5.0.5 5353 + 5354 + minimatch@5.1.9: 5355 + dependencies: 5356 + brace-expansion: 2.0.3 5357 + 5358 + minimatch@9.0.9: 5359 + dependencies: 5360 + brace-expansion: 2.0.3 5361 + 5362 + minipass@7.1.3: {} 5363 + 5364 + minizlib@3.1.0: 5365 + dependencies: 5366 + minipass: 7.1.3 5367 + 5368 + mlly@1.8.2: 5369 + dependencies: 5370 + acorn: 8.16.0 5371 + pathe: 2.0.3 5372 + pkg-types: 1.3.1 5373 + ufo: 1.6.3 5374 + 5375 + ms@2.0.0: {} 5376 + 5377 + ms@2.1.3: {} 5378 + 5379 + multiformats@9.9.0: {} 5380 + 5381 + nanoid@3.3.11: {} 5382 + 5383 + nitropack@2.13.2(drizzle-orm@0.39.3(postgres@3.4.8)): 5384 + dependencies: 5385 + '@cloudflare/kv-asset-handler': 0.4.2 5386 + '@rollup/plugin-alias': 6.0.0(rollup@4.60.1) 5387 + '@rollup/plugin-commonjs': 29.0.2(rollup@4.60.1) 5388 + '@rollup/plugin-inject': 5.0.5(rollup@4.60.1) 5389 + '@rollup/plugin-json': 6.1.0(rollup@4.60.1) 5390 + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.1) 5391 + '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) 5392 + '@rollup/plugin-terser': 1.0.0(rollup@4.60.1) 5393 + '@vercel/nft': 1.5.0(rollup@4.60.1) 5394 + archiver: 7.0.1 5395 + c12: 3.3.3(magicast@0.5.2) 5396 + chokidar: 5.0.0 5397 + citty: 0.2.1 5398 + compatx: 0.2.0 5399 + confbox: 0.2.4 5400 + consola: 3.4.2 5401 + cookie-es: 2.0.0 5402 + croner: 10.0.1 5403 + crossws: 0.3.5 5404 + db0: 0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)) 5405 + defu: 6.1.4 5406 + destr: 2.0.5 5407 + dot-prop: 10.1.0 5408 + esbuild: 0.27.4 5409 + escape-string-regexp: 5.0.0 5410 + etag: 1.8.1 5411 + exsolve: 1.0.8 5412 + globby: 16.2.0 5413 + gzip-size: 7.0.0 5414 + h3: 1.15.10 5415 + hookable: 5.5.3 5416 + httpxy: 0.3.1 5417 + ioredis: 5.10.1 5418 + jiti: 2.6.1 5419 + klona: 2.0.6 5420 + knitwork: 1.3.0 5421 + listhen: 1.9.0 5422 + magic-string: 0.30.21 5423 + magicast: 0.5.2 5424 + mime: 4.1.0 5425 + mlly: 1.8.2 5426 + node-fetch-native: 1.6.7 5427 + node-mock-http: 1.0.4 5428 + ofetch: 1.5.1 5429 + ohash: 2.0.11 5430 + pathe: 2.0.3 5431 + perfect-debounce: 2.1.0 5432 + pkg-types: 2.3.0 5433 + pretty-bytes: 7.1.0 5434 + radix3: 1.1.2 5435 + rollup: 4.60.1 5436 + rollup-plugin-visualizer: 7.0.1(rollup@4.60.1) 5437 + scule: 1.3.0 5438 + semver: 7.7.4 5439 + serve-placeholder: 2.0.2 5440 + serve-static: 2.2.1 5441 + source-map: 0.7.6 5442 + std-env: 4.0.0 5443 + ufo: 1.6.3 5444 + ultrahtml: 1.6.0 5445 + uncrypto: 0.1.3 5446 + unctx: 2.5.0 5447 + unenv: 2.0.0-rc.24 5448 + unimport: 6.0.2 5449 + unplugin-utils: 0.3.1 5450 + unstorage: 1.17.5(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(ioredis@5.10.1) 5451 + untyped: 2.0.0 5452 + unwasm: 0.5.3 5453 + youch: 4.1.1 5454 + youch-core: 0.3.3 5455 + transitivePeerDependencies: 5456 + - '@azure/app-configuration' 5457 + - '@azure/cosmos' 5458 + - '@azure/data-tables' 5459 + - '@azure/identity' 5460 + - '@azure/keyvault-secrets' 5461 + - '@azure/storage-blob' 5462 + - '@capacitor/preferences' 5463 + - '@deno/kv' 5464 + - '@electric-sql/pglite' 5465 + - '@libsql/client' 5466 + - '@netlify/blobs' 5467 + - '@planetscale/database' 5468 + - '@upstash/redis' 5469 + - '@vercel/blob' 5470 + - '@vercel/functions' 5471 + - '@vercel/kv' 5472 + - aws4fetch 5473 + - bare-abort-controller 5474 + - bare-buffer 5475 + - better-sqlite3 5476 + - drizzle-orm 5477 + - encoding 5478 + - idb-keyval 5479 + - mysql2 5480 + - react-native-b4a 5481 + - rolldown 5482 + - sqlite3 5483 + - supports-color 5484 + - uploadthing 5485 + 5486 + node-addon-api@7.1.1: {} 5487 + 5488 + node-fetch-native@1.6.7: {} 5489 + 5490 + node-fetch@2.7.0: 5491 + dependencies: 5492 + whatwg-url: 5.0.0 5493 + 5494 + node-forge@1.4.0: {} 5495 + 5496 + node-gyp-build@4.8.4: {} 5497 + 5498 + node-mock-http@1.0.4: {} 5499 + 5500 + node-releases@2.0.36: {} 5501 + 5502 + nopt@8.1.0: 5503 + dependencies: 5504 + abbrev: 3.0.1 5505 + 5506 + normalize-path@3.0.0: {} 5507 + 5508 + npm-run-path@5.3.0: 5509 + dependencies: 5510 + path-key: 4.0.0 5511 + 5512 + nypm@0.6.5: 5513 + dependencies: 5514 + citty: 0.2.1 5515 + pathe: 2.0.3 5516 + tinyexec: 1.0.4 5517 + 5518 + ofetch@1.5.1: 5519 + dependencies: 5520 + destr: 2.0.5 5521 + node-fetch-native: 1.6.7 5522 + ufo: 1.6.3 5523 + 5524 + ohash@2.0.11: {} 5525 + 5526 + on-finished@2.4.1: 5527 + dependencies: 5528 + ee-first: 1.1.1 5529 + 5530 + onetime@6.0.0: 5531 + dependencies: 5532 + mimic-fn: 4.0.0 5533 + 5534 + oniguruma-to-es@2.3.0: 5535 + dependencies: 5536 + emoji-regex-xs: 1.0.0 5537 + regex: 5.1.1 5538 + regex-recursion: 5.1.1 5539 + 5540 + open@11.0.0: 5541 + dependencies: 5542 + default-browser: 5.5.0 5543 + define-lazy-prop: 3.0.0 5544 + is-in-ssh: 1.0.0 5545 + is-inside-container: 1.0.0 5546 + powershell-utils: 0.1.0 5547 + wsl-utils: 0.3.1 5548 + 5549 + package-json-from-dist@1.0.1: {} 5550 + 5551 + parse5@7.3.0: 5552 + dependencies: 5553 + entities: 6.0.1 5554 + 5555 + parseurl@1.3.3: {} 5556 + 5557 + path-key@3.1.1: {} 5558 + 5559 + path-key@4.0.0: {} 5560 + 5561 + path-parse@1.0.7: {} 5562 + 5563 + path-scurry@1.11.1: 5564 + dependencies: 5565 + lru-cache: 10.4.3 5566 + minipass: 7.1.3 5567 + 5568 + path-scurry@2.0.2: 5569 + dependencies: 5570 + lru-cache: 11.2.7 5571 + minipass: 7.1.3 5572 + 5573 + path-to-regexp@6.3.0: {} 5574 + 5575 + pathe@1.1.2: {} 5576 + 5577 + pathe@2.0.3: {} 5578 + 5579 + perfect-debounce@2.1.0: {} 5580 + 5581 + picocolors@1.1.1: {} 5582 + 5583 + picomatch@2.3.2: {} 5584 + 5585 + picomatch@4.0.4: {} 5586 + 5587 + pkg-types@1.3.1: 5588 + dependencies: 5589 + confbox: 0.1.8 5590 + mlly: 1.8.2 5591 + pathe: 2.0.3 5592 + 5593 + pkg-types@2.3.0: 5594 + dependencies: 5595 + confbox: 0.2.4 5596 + exsolve: 1.0.8 5597 + pathe: 2.0.3 5598 + 5599 + postcss@8.5.8: 5600 + dependencies: 5601 + nanoid: 3.3.11 5602 + picocolors: 1.1.1 5603 + source-map-js: 1.2.1 5604 + 5605 + postgres@3.4.8: {} 5606 + 5607 + powershell-utils@0.1.0: {} 5608 + 5609 + pretty-bytes@7.1.0: {} 5610 + 5611 + process-nextick-args@2.0.1: {} 5612 + 5613 + process@0.11.10: {} 5614 + 5615 + property-information@7.1.0: {} 5616 + 5617 + quansync@0.2.11: {} 5618 + 5619 + queue-microtask@1.2.3: {} 5620 + 5621 + radix3@1.1.2: {} 5622 + 5623 + range-parser@1.2.1: {} 5624 + 5625 + rc9@2.1.2: 5626 + dependencies: 5627 + defu: 6.1.4 5628 + destr: 2.0.5 5629 + 5630 + readable-stream@2.3.8: 5631 + dependencies: 5632 + core-util-is: 1.0.3 5633 + inherits: 2.0.4 5634 + isarray: 1.0.0 5635 + process-nextick-args: 2.0.1 5636 + safe-buffer: 5.1.2 5637 + string_decoder: 1.1.1 5638 + util-deprecate: 1.0.2 5639 + 5640 + readable-stream@4.7.0: 5641 + dependencies: 5642 + abort-controller: 3.0.0 5643 + buffer: 6.0.3 5644 + events: 3.3.0 5645 + process: 0.11.10 5646 + string_decoder: 1.3.0 5647 + 5648 + readdir-glob@1.1.3: 5649 + dependencies: 5650 + minimatch: 5.1.9 5651 + 5652 + readdirp@4.1.2: {} 5653 + 5654 + readdirp@5.0.0: {} 5655 + 5656 + recast@0.23.11: 5657 + dependencies: 5658 + ast-types: 0.16.1 5659 + esprima: 4.0.1 5660 + source-map: 0.6.1 5661 + tiny-invariant: 1.3.3 5662 + tslib: 2.8.1 5663 + 5664 + redis-errors@1.2.0: {} 5665 + 5666 + redis-parser@3.0.0: 5667 + dependencies: 5668 + redis-errors: 1.2.0 5669 + 5670 + regex-recursion@5.1.1: 5671 + dependencies: 5672 + regex: 5.1.1 5673 + regex-utilities: 2.3.0 5674 + 5675 + regex-utilities@2.3.0: {} 5676 + 5677 + regex@5.1.1: 5678 + dependencies: 5679 + regex-utilities: 2.3.0 5680 + 5681 + requires-port@1.0.0: {} 5682 + 5683 + resolve-from@5.0.0: {} 5684 + 5685 + resolve-pkg-maps@1.0.0: {} 5686 + 5687 + resolve@1.22.11: 5688 + dependencies: 5689 + is-core-module: 2.16.1 5690 + path-parse: 1.0.7 5691 + supports-preserve-symlinks-flag: 1.0.0 5692 + 5693 + reusify@1.1.0: {} 5694 + 5695 + rollup-plugin-visualizer@7.0.1(rollup@4.60.1): 5696 + dependencies: 5697 + open: 11.0.0 5698 + picomatch: 4.0.4 5699 + source-map: 0.7.6 5700 + yargs: 18.0.0 5701 + optionalDependencies: 5702 + rollup: 4.60.1 5703 + 5704 + rollup@4.60.1: 5705 + dependencies: 5706 + '@types/estree': 1.0.8 5707 + optionalDependencies: 5708 + '@rollup/rollup-android-arm-eabi': 4.60.1 5709 + '@rollup/rollup-android-arm64': 4.60.1 5710 + '@rollup/rollup-darwin-arm64': 4.60.1 5711 + '@rollup/rollup-darwin-x64': 4.60.1 5712 + '@rollup/rollup-freebsd-arm64': 4.60.1 5713 + '@rollup/rollup-freebsd-x64': 4.60.1 5714 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 5715 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 5716 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 5717 + '@rollup/rollup-linux-arm64-musl': 4.60.1 5718 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 5719 + '@rollup/rollup-linux-loong64-musl': 4.60.1 5720 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 5721 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 5722 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 5723 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 5724 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 5725 + '@rollup/rollup-linux-x64-gnu': 4.60.1 5726 + '@rollup/rollup-linux-x64-musl': 4.60.1 5727 + '@rollup/rollup-openbsd-x64': 4.60.1 5728 + '@rollup/rollup-openharmony-arm64': 4.60.1 5729 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 5730 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 5731 + '@rollup/rollup-win32-x64-gnu': 4.60.1 5732 + '@rollup/rollup-win32-x64-msvc': 4.60.1 5733 + fsevents: 2.3.3 5734 + 5735 + run-applescript@7.1.0: {} 5736 + 5737 + run-parallel@1.2.0: 5738 + dependencies: 5739 + queue-microtask: 1.2.3 5740 + 5741 + safe-buffer@5.1.2: {} 5742 + 5743 + safe-buffer@5.2.1: {} 5744 + 5745 + scule@1.3.0: {} 5746 + 5747 + semver@6.3.1: {} 5748 + 5749 + semver@7.7.4: {} 5750 + 5751 + send@0.19.2: 5752 + dependencies: 5753 + debug: 2.6.9 5754 + depd: 2.0.0 5755 + destroy: 1.2.0 5756 + encodeurl: 2.0.0 5757 + escape-html: 1.0.3 5758 + etag: 1.8.1 5759 + fresh: 0.5.2 5760 + http-errors: 2.0.1 5761 + mime: 1.6.0 5762 + ms: 2.1.3 5763 + on-finished: 2.4.1 5764 + range-parser: 1.2.1 5765 + statuses: 2.0.2 5766 + transitivePeerDependencies: 5767 + - supports-color 5768 + 5769 + send@1.2.1: 5770 + dependencies: 5771 + debug: 4.4.3 5772 + encodeurl: 2.0.0 5773 + escape-html: 1.0.3 5774 + etag: 1.8.1 5775 + fresh: 2.0.0 5776 + http-errors: 2.0.1 5777 + mime-types: 3.0.2 5778 + ms: 2.1.3 5779 + on-finished: 2.4.1 5780 + range-parser: 1.2.1 5781 + statuses: 2.0.2 5782 + transitivePeerDependencies: 5783 + - supports-color 5784 + 5785 + serialize-javascript@7.0.5: {} 5786 + 5787 + seroval-plugins@1.5.1(seroval@1.5.1): 5788 + dependencies: 5789 + seroval: 1.5.1 5790 + 5791 + seroval@1.5.1: {} 5792 + 5793 + serve-placeholder@2.0.2: 5794 + dependencies: 5795 + defu: 6.1.4 5796 + 5797 + serve-static@1.16.3: 5798 + dependencies: 5799 + encodeurl: 2.0.0 5800 + escape-html: 1.0.3 5801 + parseurl: 1.3.3 5802 + send: 0.19.2 5803 + transitivePeerDependencies: 5804 + - supports-color 5805 + 5806 + serve-static@2.2.1: 5807 + dependencies: 5808 + encodeurl: 2.0.0 5809 + escape-html: 1.0.3 5810 + parseurl: 1.3.3 5811 + send: 1.2.1 5812 + transitivePeerDependencies: 5813 + - supports-color 5814 + 5815 + setprototypeof@1.2.0: {} 5816 + 5817 + shebang-command@2.0.0: 5818 + dependencies: 5819 + shebang-regex: 3.0.0 5820 + 5821 + shebang-regex@3.0.0: {} 5822 + 5823 + shell-quote@1.8.3: {} 5824 + 5825 + shiki@1.29.2: 5826 + dependencies: 5827 + '@shikijs/core': 1.29.2 5828 + '@shikijs/engine-javascript': 1.29.2 5829 + '@shikijs/engine-oniguruma': 1.29.2 5830 + '@shikijs/langs': 1.29.2 5831 + '@shikijs/themes': 1.29.2 5832 + '@shikijs/types': 1.29.2 5833 + '@shikijs/vscode-textmate': 10.0.2 5834 + '@types/hast': 3.0.4 5835 + 5836 + signal-exit@4.1.0: {} 5837 + 5838 + slash@5.1.0: {} 5839 + 5840 + smob@1.6.1: {} 5841 + 5842 + solid-js@1.9.12: 5843 + dependencies: 5844 + csstype: 3.2.3 5845 + seroval: 1.5.1 5846 + seroval-plugins: 1.5.1(seroval@1.5.1) 5847 + 5848 + solid-refresh@0.6.3(solid-js@1.9.12): 5849 + dependencies: 5850 + '@babel/generator': 7.29.1 5851 + '@babel/helper-module-imports': 7.28.6 5852 + '@babel/types': 7.29.0 5853 + solid-js: 1.9.12 5854 + transitivePeerDependencies: 5855 + - supports-color 5856 + 5857 + solid-use@0.9.1(solid-js@1.9.12): 5858 + dependencies: 5859 + solid-js: 1.9.12 5860 + 5861 + source-map-js@1.2.1: {} 5862 + 5863 + source-map-support@0.5.21: 5864 + dependencies: 5865 + buffer-from: 1.1.2 5866 + source-map: 0.6.1 5867 + 5868 + source-map@0.6.1: {} 5869 + 5870 + source-map@0.7.6: {} 5871 + 5872 + space-separated-tokens@2.0.2: {} 5873 + 5874 + stackframe@1.3.4: {} 5875 + 5876 + standard-as-callback@2.1.0: {} 5877 + 5878 + statuses@2.0.2: {} 5879 + 5880 + std-env@3.10.0: {} 5881 + 5882 + std-env@4.0.0: {} 5883 + 5884 + streamx@2.25.0: 5885 + dependencies: 5886 + events-universal: 1.0.1 5887 + fast-fifo: 1.3.2 5888 + text-decoder: 1.2.7 5889 + transitivePeerDependencies: 5890 + - bare-abort-controller 5891 + - react-native-b4a 5892 + 5893 + string-width@4.2.3: 5894 + dependencies: 5895 + emoji-regex: 8.0.0 5896 + is-fullwidth-code-point: 3.0.0 5897 + strip-ansi: 6.0.1 5898 + 5899 + string-width@5.1.2: 5900 + dependencies: 5901 + eastasianwidth: 0.2.0 5902 + emoji-regex: 9.2.2 5903 + strip-ansi: 7.2.0 5904 + 5905 + string-width@7.2.0: 5906 + dependencies: 5907 + emoji-regex: 10.6.0 5908 + get-east-asian-width: 1.5.0 5909 + strip-ansi: 7.2.0 5910 + 5911 + string_decoder@1.1.1: 5912 + dependencies: 5913 + safe-buffer: 5.1.2 5914 + 5915 + string_decoder@1.3.0: 5916 + dependencies: 5917 + safe-buffer: 5.2.1 5918 + 5919 + stringify-entities@4.0.4: 5920 + dependencies: 5921 + character-entities-html4: 2.1.0 5922 + character-entities-legacy: 3.0.0 5923 + 5924 + strip-ansi@6.0.1: 5925 + dependencies: 5926 + ansi-regex: 5.0.1 5927 + 5928 + strip-ansi@7.2.0: 5929 + dependencies: 5930 + ansi-regex: 6.2.2 5931 + 5932 + strip-final-newline@3.0.0: {} 5933 + 5934 + strip-literal@3.1.0: 5935 + dependencies: 5936 + js-tokens: 9.0.1 5937 + 5938 + supports-color@10.2.2: {} 5939 + 5940 + supports-preserve-symlinks-flag@1.0.0: {} 5941 + 5942 + system-architecture@0.1.0: {} 5943 + 5944 + tagged-tag@1.0.0: {} 5945 + 5946 + tar-stream@3.1.8: 5947 + dependencies: 5948 + b4a: 1.8.0 5949 + bare-fs: 4.5.6 5950 + fast-fifo: 1.3.2 5951 + streamx: 2.25.0 5952 + transitivePeerDependencies: 5953 + - bare-abort-controller 5954 + - bare-buffer 5955 + - react-native-b4a 5956 + 5957 + tar@7.5.13: 5958 + dependencies: 5959 + '@isaacs/fs-minipass': 4.0.1 5960 + chownr: 3.0.0 5961 + minipass: 7.1.3 5962 + minizlib: 3.1.0 5963 + yallist: 5.0.0 5964 + 5965 + teex@1.0.1: 5966 + dependencies: 5967 + streamx: 2.25.0 5968 + transitivePeerDependencies: 5969 + - bare-abort-controller 5970 + - react-native-b4a 5971 + 5972 + terracotta@1.1.0(solid-js@1.9.12): 5973 + dependencies: 5974 + solid-js: 1.9.12 5975 + solid-use: 0.9.1(solid-js@1.9.12) 5976 + 5977 + terser@5.46.1: 5978 + dependencies: 5979 + '@jridgewell/source-map': 0.3.11 5980 + acorn: 8.16.0 5981 + commander: 2.20.3 5982 + source-map-support: 0.5.21 5983 + 5984 + text-decoder@1.2.7: 5985 + dependencies: 5986 + b4a: 1.8.0 5987 + transitivePeerDependencies: 5988 + - react-native-b4a 5989 + 5990 + tiny-invariant@1.3.3: {} 5991 + 5992 + tinyexec@1.0.4: {} 5993 + 5994 + tinyglobby@0.2.15: 5995 + dependencies: 5996 + fdir: 6.5.0(picomatch@4.0.4) 5997 + picomatch: 4.0.4 5998 + 5999 + tlds@1.261.0: {} 6000 + 6001 + to-regex-range@5.0.1: 6002 + dependencies: 6003 + is-number: 7.0.0 6004 + 6005 + toidentifier@1.0.1: {} 6006 + 6007 + tr46@0.0.3: {} 6008 + 6009 + trim-lines@3.0.1: {} 6010 + 6011 + tslib@2.8.1: {} 6012 + 6013 + type-fest@4.41.0: {} 6014 + 6015 + type-fest@5.5.0: 6016 + dependencies: 6017 + tagged-tag: 1.0.0 6018 + 6019 + typescript@5.9.3: {} 6020 + 6021 + ufo@1.6.3: {} 6022 + 6023 + uint8arrays@3.0.0: 6024 + dependencies: 6025 + multiformats: 9.9.0 6026 + 6027 + ultrahtml@1.6.0: {} 6028 + 6029 + uncrypto@0.1.3: {} 6030 + 6031 + unctx@2.5.0: 6032 + dependencies: 6033 + acorn: 8.16.0 6034 + estree-walker: 3.0.3 6035 + magic-string: 0.30.21 6036 + unplugin: 2.3.11 6037 + 6038 + undici-types@5.28.4: {} 6039 + 6040 + undici-types@7.18.2: {} 6041 + 6042 + undici@6.24.1: {} 6043 + 6044 + unenv@1.10.0: 6045 + dependencies: 6046 + consola: 3.4.2 6047 + defu: 6.1.4 6048 + mime: 3.0.0 6049 + node-fetch-native: 1.6.7 6050 + pathe: 1.1.2 6051 + 6052 + unenv@2.0.0-rc.24: 6053 + dependencies: 6054 + pathe: 2.0.3 6055 + 6056 + unicode-segmenter@0.14.5: {} 6057 + 6058 + unicorn-magic@0.4.0: {} 6059 + 6060 + unimport@6.0.2: 6061 + dependencies: 6062 + acorn: 8.16.0 6063 + escape-string-regexp: 5.0.0 6064 + estree-walker: 3.0.3 6065 + local-pkg: 1.1.2 6066 + magic-string: 0.30.21 6067 + mlly: 1.8.2 6068 + pathe: 2.0.3 6069 + picomatch: 4.0.4 6070 + pkg-types: 2.3.0 6071 + scule: 1.3.0 6072 + strip-literal: 3.1.0 6073 + tinyglobby: 0.2.15 6074 + unplugin: 3.0.0 6075 + unplugin-utils: 0.3.1 6076 + 6077 + unist-util-is@6.0.1: 6078 + dependencies: 6079 + '@types/unist': 3.0.3 6080 + 6081 + unist-util-position@5.0.0: 6082 + dependencies: 6083 + '@types/unist': 3.0.3 6084 + 6085 + unist-util-stringify-position@4.0.0: 6086 + dependencies: 6087 + '@types/unist': 3.0.3 6088 + 6089 + unist-util-visit-parents@6.0.2: 6090 + dependencies: 6091 + '@types/unist': 3.0.3 6092 + unist-util-is: 6.0.1 6093 + 6094 + unist-util-visit@5.1.0: 6095 + dependencies: 6096 + '@types/unist': 3.0.3 6097 + unist-util-is: 6.0.1 6098 + unist-util-visit-parents: 6.0.2 6099 + 6100 + unplugin-utils@0.3.1: 6101 + dependencies: 6102 + pathe: 2.0.3 6103 + picomatch: 4.0.4 6104 + 6105 + unplugin@2.3.11: 6106 + dependencies: 6107 + '@jridgewell/remapping': 2.3.5 6108 + acorn: 8.16.0 6109 + picomatch: 4.0.4 6110 + webpack-virtual-modules: 0.6.2 6111 + 6112 + unplugin@3.0.0: 6113 + dependencies: 6114 + '@jridgewell/remapping': 2.3.5 6115 + picomatch: 4.0.4 6116 + webpack-virtual-modules: 0.6.2 6117 + 6118 + unstorage@1.17.5(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(ioredis@5.10.1): 6119 + dependencies: 6120 + anymatch: 3.1.3 6121 + chokidar: 5.0.0 6122 + destr: 2.0.5 6123 + h3: 1.15.10 6124 + lru-cache: 11.2.7 6125 + node-fetch-native: 1.6.7 6126 + ofetch: 1.5.1 6127 + ufo: 1.6.3 6128 + optionalDependencies: 6129 + db0: 0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)) 6130 + ioredis: 5.10.1 6131 + 6132 + untun@0.1.3: 6133 + dependencies: 6134 + citty: 0.1.6 6135 + consola: 3.4.2 6136 + pathe: 1.1.2 6137 + 6138 + untyped@2.0.0: 6139 + dependencies: 6140 + citty: 0.1.6 6141 + defu: 6.1.4 6142 + jiti: 2.6.1 6143 + knitwork: 1.3.0 6144 + scule: 1.3.0 6145 + 6146 + unwasm@0.5.3: 6147 + dependencies: 6148 + exsolve: 1.0.8 6149 + knitwork: 1.3.0 6150 + magic-string: 0.30.21 6151 + mlly: 1.8.2 6152 + pathe: 2.0.3 6153 + pkg-types: 2.3.0 6154 + 6155 + update-browserslist-db@1.2.3(browserslist@4.28.2): 6156 + dependencies: 6157 + browserslist: 4.28.2 6158 + escalade: 3.2.0 6159 + picocolors: 1.1.1 6160 + 6161 + uqr@0.1.2: {} 6162 + 6163 + util-deprecate@1.0.2: {} 6164 + 6165 + vfile-message@4.0.3: 6166 + dependencies: 6167 + '@types/unist': 3.0.3 6168 + unist-util-stringify-position: 4.0.0 6169 + 6170 + vfile@6.0.3: 6171 + dependencies: 6172 + '@types/unist': 3.0.3 6173 + vfile-message: 4.0.3 6174 + 6175 + vinxi@0.5.11(@types/node@25.5.0)(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(drizzle-orm@0.39.3(postgres@3.4.8))(ioredis@5.10.1)(jiti@2.6.1)(terser@5.46.1): 6176 + dependencies: 6177 + '@babel/core': 7.29.0 6178 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) 6179 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) 6180 + '@types/micromatch': 4.0.10 6181 + '@vinxi/listhen': 1.5.6 6182 + boxen: 8.0.1 6183 + chokidar: 4.0.3 6184 + citty: 0.1.6 6185 + consola: 3.4.2 6186 + crossws: 0.3.5 6187 + dax-sh: 0.43.2 6188 + defu: 6.1.4 6189 + es-module-lexer: 1.7.0 6190 + esbuild: 0.25.12 6191 + get-port-please: 3.2.0 6192 + h3: 1.15.3 6193 + hookable: 5.5.3 6194 + http-proxy: 1.18.1 6195 + micromatch: 4.0.8 6196 + nitropack: 2.13.2(drizzle-orm@0.39.3(postgres@3.4.8)) 6197 + node-fetch-native: 1.6.7 6198 + path-to-regexp: 6.3.0 6199 + pathe: 1.1.2 6200 + radix3: 1.1.2 6201 + resolve: 1.22.11 6202 + serve-placeholder: 2.0.2 6203 + serve-static: 1.16.3 6204 + tinyglobby: 0.2.15 6205 + ufo: 1.6.3 6206 + unctx: 2.5.0 6207 + unenv: 1.10.0 6208 + unstorage: 1.17.5(db0@0.3.4(drizzle-orm@0.39.3(postgres@3.4.8)))(ioredis@5.10.1) 6209 + vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1) 6210 + zod: 4.3.6 6211 + transitivePeerDependencies: 6212 + - '@azure/app-configuration' 6213 + - '@azure/cosmos' 6214 + - '@azure/data-tables' 6215 + - '@azure/identity' 6216 + - '@azure/keyvault-secrets' 6217 + - '@azure/storage-blob' 6218 + - '@capacitor/preferences' 6219 + - '@deno/kv' 6220 + - '@electric-sql/pglite' 6221 + - '@libsql/client' 6222 + - '@netlify/blobs' 6223 + - '@planetscale/database' 6224 + - '@types/node' 6225 + - '@upstash/redis' 6226 + - '@vercel/blob' 6227 + - '@vercel/functions' 6228 + - '@vercel/kv' 6229 + - aws4fetch 6230 + - bare-abort-controller 6231 + - bare-buffer 6232 + - better-sqlite3 6233 + - db0 6234 + - debug 6235 + - drizzle-orm 6236 + - encoding 6237 + - idb-keyval 6238 + - ioredis 6239 + - jiti 6240 + - less 6241 + - lightningcss 6242 + - mysql2 6243 + - react-native-b4a 6244 + - rolldown 6245 + - sass 6246 + - sass-embedded 6247 + - sqlite3 6248 + - stylus 6249 + - sugarss 6250 + - supports-color 6251 + - terser 6252 + - tsx 6253 + - uploadthing 6254 + - xml2js 6255 + - yaml 6256 + 6257 + vite-plugin-solid@2.11.11(solid-js@1.9.12)(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)): 6258 + dependencies: 6259 + '@babel/core': 7.29.0 6260 + '@types/babel__core': 7.20.5 6261 + babel-preset-solid: 1.9.12(@babel/core@7.29.0)(solid-js@1.9.12) 6262 + merge-anything: 5.1.7 6263 + solid-js: 1.9.12 6264 + solid-refresh: 0.6.3(solid-js@1.9.12) 6265 + vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1) 6266 + vitefu: 1.1.2(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)) 6267 + transitivePeerDependencies: 6268 + - supports-color 6269 + 6270 + vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1): 6271 + dependencies: 6272 + esbuild: 0.25.12 6273 + fdir: 6.5.0(picomatch@4.0.4) 6274 + picomatch: 4.0.4 6275 + postcss: 8.5.8 6276 + rollup: 4.60.1 6277 + tinyglobby: 0.2.15 6278 + optionalDependencies: 6279 + '@types/node': 25.5.0 6280 + fsevents: 2.3.3 6281 + jiti: 2.6.1 6282 + terser: 5.46.1 6283 + 6284 + vitefu@1.1.2(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1)): 6285 + optionalDependencies: 6286 + vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.1) 6287 + 6288 + webidl-conversions@3.0.1: {} 6289 + 6290 + webpack-virtual-modules@0.6.2: {} 6291 + 6292 + whatwg-url@5.0.0: 6293 + dependencies: 6294 + tr46: 0.0.3 6295 + webidl-conversions: 3.0.1 6296 + 6297 + which@2.0.2: 6298 + dependencies: 6299 + isexe: 2.0.0 6300 + 6301 + which@4.0.0: 6302 + dependencies: 6303 + isexe: 3.1.5 6304 + 6305 + widest-line@5.0.0: 6306 + dependencies: 6307 + string-width: 7.2.0 6308 + 6309 + wrap-ansi@7.0.0: 6310 + dependencies: 6311 + ansi-styles: 4.3.0 6312 + string-width: 4.2.3 6313 + strip-ansi: 6.0.1 6314 + 6315 + wrap-ansi@8.1.0: 6316 + dependencies: 6317 + ansi-styles: 6.2.3 6318 + string-width: 5.1.2 6319 + strip-ansi: 7.2.0 6320 + 6321 + wrap-ansi@9.0.2: 6322 + dependencies: 6323 + ansi-styles: 6.2.3 6324 + string-width: 7.2.0 6325 + strip-ansi: 7.2.0 6326 + 6327 + wsl-utils@0.3.1: 6328 + dependencies: 6329 + is-wsl: 3.1.1 6330 + powershell-utils: 0.1.0 6331 + 6332 + y18n@5.0.8: {} 6333 + 6334 + yallist@3.1.1: {} 6335 + 6336 + yallist@5.0.0: {} 6337 + 6338 + yargs-parser@22.0.0: {} 6339 + 6340 + yargs@18.0.0: 6341 + dependencies: 6342 + cliui: 9.0.1 6343 + escalade: 3.2.0 6344 + get-caller-file: 2.0.5 6345 + string-width: 7.2.0 6346 + y18n: 5.0.8 6347 + yargs-parser: 22.0.0 6348 + 6349 + youch-core@0.3.3: 6350 + dependencies: 6351 + '@poppinss/exception': 1.2.3 6352 + error-stack-parser-es: 1.0.5 6353 + 6354 + youch@4.1.1: 6355 + dependencies: 6356 + '@poppinss/colors': 4.1.6 6357 + '@poppinss/dumper': 0.7.0 6358 + '@speed-highlight/core': 1.2.15 6359 + cookie-es: 3.1.1 6360 + youch-core: 0.3.3 6361 + 6362 + zip-stream@6.0.1: 6363 + dependencies: 6364 + archiver-utils: 5.0.2 6365 + compress-commons: 6.0.2 6366 + readable-stream: 4.7.0 6367 + 6368 + zod@3.25.76: {} 6369 + 6370 + zod@4.3.6: {} 6371 + 6372 + zwitch@2.0.4: {}
+42
src/app.css
··· 1 + :root { 2 + --color-bg: #0f0f0f; 3 + --color-surface: #1a1a1a; 4 + --color-surface-hover: #242424; 5 + --color-border: #2a2a2a; 6 + --color-primary: #0085ff; 7 + --color-primary-hover: #0070dd; 8 + --color-text: #e8e8e8; 9 + --color-text-muted: #888; 10 + --color-success: #2ecc71; 11 + --color-danger: #e74c3c; 12 + --radius: 8px; 13 + --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 14 + } 15 + 16 + *, 17 + *::before, 18 + *::after { 19 + box-sizing: border-box; 20 + margin: 0; 21 + padding: 0; 22 + } 23 + 24 + html { 25 + font-family: var(--font); 26 + background: var(--color-bg); 27 + color: var(--color-text); 28 + line-height: 1.6; 29 + } 30 + 31 + body { 32 + min-height: 100vh; 33 + } 34 + 35 + a { 36 + color: var(--color-primary); 37 + text-decoration: none; 38 + } 39 + 40 + a:hover { 41 + text-decoration: underline; 42 + }
+24
src/app.tsx
··· 1 + import { MetaProvider, Title } from "@solidjs/meta"; 2 + import { Router } from "@solidjs/router"; 3 + import { FileRoutes } from "@solidjs/start/router"; 4 + import { Suspense } from "solid-js"; 5 + 6 + import { Header } from "~/components/Header"; 7 + 8 + import "./app.css"; 9 + 10 + export default function App() { 11 + return ( 12 + <Router 13 + root={(props) => ( 14 + <MetaProvider> 15 + <Title>Askimut</Title> 16 + <Header /> 17 + <Suspense>{props.children}</Suspense> 18 + </MetaProvider> 19 + )} 20 + > 21 + <FileRoutes /> 22 + </Router> 23 + ); 24 + }
+49
src/components/Header.module.css
··· 1 + .bar { 2 + position: sticky; 3 + top: 0; 4 + z-index: 50; 5 + display: flex; 6 + align-items: center; 7 + justify-content: space-between; 8 + gap: 1rem; 9 + padding: 0.65rem 1.25rem; 10 + background: var(--color-surface); 11 + border-bottom: 1px solid var(--color-border); 12 + } 13 + 14 + .brand { 15 + font-weight: 700; 16 + font-size: 1.05rem; 17 + color: var(--color-text); 18 + text-decoration: none; 19 + } 20 + 21 + .brand:hover { 22 + color: var(--color-primary); 23 + text-decoration: none; 24 + } 25 + 26 + .right { 27 + display: flex; 28 + align-items: center; 29 + gap: 0.85rem; 30 + font-size: 0.9rem; 31 + } 32 + 33 + .handle { 34 + color: var(--color-text-muted); 35 + max-width: 200px; 36 + overflow: hidden; 37 + text-overflow: ellipsis; 38 + white-space: nowrap; 39 + } 40 + 41 + .signOut { 42 + color: var(--color-primary); 43 + font-weight: 500; 44 + text-decoration: none; 45 + } 46 + 47 + .signOut:hover { 48 + text-decoration: underline; 49 + }
+75
src/components/Header.tsx
··· 1 + import { A, createAsync } from "@solidjs/router"; 2 + import { Show, createEffect, createSignal, onMount } from "solid-js"; 3 + 4 + import { getCurrentUser } from "~/lib/queries"; 5 + 6 + import styles from "./Header.module.css"; 7 + 8 + export function Header() { 9 + console.log("[Header] Component rendering - START:", { 10 + isServer: typeof window === "undefined", 11 + timestamp: new Date().toISOString() 12 + }); 13 + 14 + const user = createAsync(() => { 15 + console.log("[Header] createAsync getCurrentUser called:", { 16 + isServer: typeof window === "undefined", 17 + timestamp: new Date().toISOString() 18 + }); 19 + return getCurrentUser(); 20 + }); 21 + 22 + // Track hydration state to prevent mismatches 23 + const [isHydrated, setIsHydrated] = createSignal(false); 24 + 25 + onMount(() => { 26 + console.log("[Header] Component mounted (client-side)"); 27 + setIsHydrated(true); 28 + }); 29 + 30 + // Log the immediate value of user() during render 31 + const currentUserValue = user(); 32 + console.log("[Header] Initial user value during render:", { 33 + user: currentUserValue, 34 + isServer: typeof window === "undefined", 35 + isHydrated: isHydrated(), 36 + timestamp: new Date().toISOString(), 37 + userHandle: currentUserValue?.handle, 38 + userDid: currentUserValue?.did, 39 + isLoading: user.loading, 40 + hasError: !!user.error 41 + }); 42 + 43 + // Debug logging for hydration issues 44 + createEffect(() => { 45 + const userValue = user(); 46 + console.log("[Header] User state changed in effect:", { 47 + user: userValue, 48 + isServer: typeof window === "undefined", 49 + isHydrated: isHydrated(), 50 + timestamp: new Date().toISOString(), 51 + userHandle: userValue?.handle, 52 + userDid: userValue?.did, 53 + isLoading: user.loading, 54 + hasError: !!user.error 55 + }); 56 + }); 57 + 58 + return ( 59 + <header class={styles.bar}> 60 + <A class={styles.brand} href="/"> 61 + Askimut 62 + </A> 63 + <Show when={user() && (isHydrated() || typeof window === "undefined")} keyed> 64 + {(u) => ( 65 + <div class={styles.right}> 66 + <span class={styles.handle}>@{u.handle}</span> 67 + <a class={styles.signOut} href="/oauth/logout"> 68 + Sign out 69 + </a> 70 + </div> 71 + )} 72 + </Show> 73 + </header> 74 + ); 75 + }
+4
src/entry-client.tsx
··· 1 + // @refresh reload 2 + import { mount, StartClient } from "@solidjs/start/client"; 3 + 4 + mount(() => <StartClient />, document.getElementById("app")!);
+21
src/entry-server.tsx
··· 1 + // @refresh reload 2 + import { createHandler, StartServer } from "@solidjs/start/server"; 3 + 4 + export default createHandler(() => ( 5 + <StartServer 6 + document={({ assets, children, scripts }) => ( 7 + <html lang="en"> 8 + <head> 9 + <meta charset="utf-8" /> 10 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 11 + <link rel="icon" href="/favicon.ico" /> 12 + {assets} 13 + </head> 14 + <body id="app"> 15 + {children} 16 + {scripts} 17 + </body> 18 + </html> 19 + )} 20 + /> 21 + ));
+13
src/lib/db.ts
··· 1 + import { drizzle } from "drizzle-orm/postgres-js"; 2 + import postgres from "postgres"; 3 + 4 + import * as schema from "./schema"; 5 + 6 + const url = process.env.DATABASE_URL; 7 + if (!url) { 8 + throw new Error("DATABASE_URL is required"); 9 + } 10 + 11 + const client = postgres(url); 12 + 13 + export const db = drizzle(client, { schema });
+104
src/lib/oauth.ts
··· 1 + import { 2 + NodeOAuthClient, 3 + type NodeSavedSession, 4 + type NodeSavedState, 5 + type OAuthClientMetadataInput, 6 + } from "@atproto/oauth-client-node"; 7 + import { eq } from "drizzle-orm"; 8 + 9 + import { db } from "~/lib/db"; 10 + import { oauthSessions, oauthStates } from "~/lib/schema"; 11 + 12 + function resolveUrl(): string { 13 + const publicUrl = process.env.PUBLIC_URL; 14 + if (publicUrl) return publicUrl.replace(/\/$/, ""); 15 + const port = process.env.PORT || 3000; 16 + return `http://127.0.0.1:${port}`; 17 + } 18 + 19 + export function getOAuthClientMetadata(): OAuthClientMetadataInput { 20 + const publicUrl = process.env.PUBLIC_URL; 21 + const url = resolveUrl(); 22 + const enc = encodeURIComponent; 23 + 24 + return { 25 + client_name: "Askimut", 26 + client_id: publicUrl 27 + ? `${url}/client-metadata.json` 28 + : `http://localhost?redirect_uri=${enc(`${url}/oauth/callback`)}&scope=${enc("atproto transition:generic")}`, 29 + client_uri: url, 30 + redirect_uris: [`${url}/oauth/callback`], 31 + scope: "atproto transition:generic", 32 + grant_types: ["authorization_code", "refresh_token"], 33 + response_types: ["code"], 34 + application_type: "web", 35 + token_endpoint_auth_method: "none", 36 + dpop_bound_access_tokens: true, 37 + }; 38 + } 39 + 40 + function drizzleStateStore() { 41 + return { 42 + async set(key: string, val: NodeSavedState): Promise<void> { 43 + const state = JSON.stringify(val); 44 + await db 45 + .insert(oauthStates) 46 + .values({ key, state, createdAt: new Date() }) 47 + .onConflictDoUpdate({ 48 + target: oauthStates.key, 49 + set: { state, createdAt: new Date() }, 50 + }); 51 + }, 52 + async get(key: string): Promise<NodeSavedState | undefined> { 53 + const row = await db.query.oauthStates.findFirst({ 54 + where: eq(oauthStates.key, key), 55 + }); 56 + if (!row) return undefined; 57 + return JSON.parse(row.state) as NodeSavedState; 58 + }, 59 + async del(key: string): Promise<void> { 60 + await db.delete(oauthStates).where(eq(oauthStates.key, key)); 61 + }, 62 + }; 63 + } 64 + 65 + function drizzleSessionStore() { 66 + return { 67 + async set(key: string, val: NodeSavedSession): Promise<void> { 68 + const session = JSON.stringify(val); 69 + await db 70 + .insert(oauthSessions) 71 + .values({ key, session, createdAt: new Date() }) 72 + .onConflictDoUpdate({ 73 + target: oauthSessions.key, 74 + set: { session, createdAt: new Date() }, 75 + }); 76 + }, 77 + async get(key: string): Promise<NodeSavedSession | undefined> { 78 + const row = await db.query.oauthSessions.findFirst({ 79 + where: eq(oauthSessions.key, key), 80 + }); 81 + if (!row) return undefined; 82 + return JSON.parse(row.session) as NodeSavedSession; 83 + }, 84 + async del(key: string): Promise<void> { 85 + await db.delete(oauthSessions).where(eq(oauthSessions.key, key)); 86 + }, 87 + }; 88 + } 89 + 90 + export async function createOAuthClient(): Promise<NodeOAuthClient> { 91 + return new NodeOAuthClient({ 92 + clientMetadata: getOAuthClientMetadata(), 93 + stateStore: drizzleStateStore(), 94 + sessionStore: drizzleSessionStore(), 95 + allowHttp: !process.env.PUBLIC_URL, 96 + }); 97 + } 98 + 99 + let clientPromise: Promise<NodeOAuthClient> | undefined; 100 + 101 + export function getOAuthClient(): Promise<NodeOAuthClient> { 102 + clientPromise ??= createOAuthClient(); 103 + return clientPromise; 104 + }
+130
src/lib/queries.ts
··· 1 + import { action, query, revalidate } from "@solidjs/router"; 2 + import { eq } from "drizzle-orm"; 3 + import { getCookie } from "vinxi/http"; 4 + 5 + import { db } from "~/lib/db"; 6 + import { answers, questions, users } from "~/lib/schema"; 7 + import { getSession, SESSION_COOKIE } from "~/lib/session"; 8 + import { initiateLogin as iL } from "~/routes/oauth/login"; 9 + 10 + export const initiateLogin = action(iL, "initiateLogin"); 11 + 12 + export const getCurrentUser = query(async () => { 13 + "use server"; 14 + const sessionId = getCookie(SESSION_COOKIE); 15 + console.log("[getCurrentUser] Session lookup:", { 16 + sessionId: sessionId ? `${sessionId.slice(0, 8)}...` : null, 17 + hasSessionId: !!sessionId, 18 + timestamp: new Date().toISOString() 19 + }); 20 + 21 + if (!sessionId) { 22 + console.log("[getCurrentUser] No session ID found in cookie"); 23 + return null; 24 + } 25 + 26 + const session = await getSession(sessionId); 27 + console.log("[getCurrentUser] Session resolved:", { 28 + hasSession: !!session, 29 + hasUser: !!session?.user, 30 + userHandle: session?.user?.handle, 31 + userDid: session?.user?.did, 32 + sessionExpiry: session?.expiresAt, 33 + timestamp: new Date().toISOString() 34 + }); 35 + 36 + return session?.user ?? null; 37 + }, "currentUser"); 38 + 39 + export const getUserByHandle = query(async (handle: string) => { 40 + "use server"; 41 + const row = await db.query.users.findFirst({ 42 + where: eq(users.handle, handle), 43 + }); 44 + return row ?? null; 45 + }, "userByHandle"); 46 + 47 + export const getQuestions = query(async (targetDid: string) => { 48 + "use server"; 49 + const rows = await db.query.questions.findMany({ 50 + where: eq(questions.targetDid, targetDid), 51 + orderBy: (q, { desc }) => [desc(q.createdAt)], 52 + with: { 53 + author: true, 54 + answers: { 55 + orderBy: (a, { asc }) => [asc(a.createdAt)], 56 + with: { author: true }, 57 + }, 58 + }, 59 + }); 60 + return rows; 61 + }, "questions"); 62 + 63 + export const toggleQuestionsOpen = action(async () => { 64 + "use server"; 65 + const sessionId = getCookie(SESSION_COOKIE); 66 + if (!sessionId) throw new Error("Unauthorized"); 67 + const session = await getSession(sessionId); 68 + if (!session) throw new Error("Unauthorized"); 69 + const user = session.user; 70 + const next = !user.questionsOpen; 71 + await db 72 + .update(users) 73 + .set({ questionsOpen: next, updatedAt: new Date() }) 74 + .where(eq(users.did, user.did)); 75 + await revalidate([ 76 + getQuestions.keyFor(user.did), 77 + getUserByHandle.keyFor(user.handle), 78 + getCurrentUser.keyFor(), 79 + ]); 80 + }, "toggleQuestionsOpen"); 81 + 82 + export const submitQuestion = action( 83 + async (targetDid: string, formData: FormData) => { 84 + "use server"; 85 + const sessionId = getCookie(SESSION_COOKIE); 86 + if (!sessionId) throw new Error("Unauthorized"); 87 + const session = await getSession(sessionId); 88 + if (!session) throw new Error("Unauthorized"); 89 + const content = formData.get("content")?.toString()?.trim(); 90 + if (!content) return; 91 + const anonymous = formData.has("anonymous"); 92 + await db.insert(questions).values({ 93 + authorDid: session.user.did, 94 + targetDid, 95 + content, 96 + anonymous, 97 + }); 98 + const target = await db.query.users.findFirst({ 99 + where: eq(users.did, targetDid), 100 + }); 101 + await revalidate([ 102 + getQuestions.keyFor(targetDid), 103 + ...(target ? [getUserByHandle.keyFor(target.handle)] : []), 104 + ]); 105 + }, 106 + "submitQuestion", 107 + ); 108 + 109 + export const submitAnswer = action( 110 + async (questionId: string, formData: FormData) => { 111 + "use server"; 112 + const sessionId = getCookie(SESSION_COOKIE); 113 + if (!sessionId) throw new Error("Unauthorized"); 114 + const session = await getSession(sessionId); 115 + if (!session) throw new Error("Unauthorized"); 116 + const content = formData.get("content")?.toString()?.trim(); 117 + if (!content) return; 118 + const q = await db.query.questions.findFirst({ 119 + where: eq(questions.id, questionId), 120 + }); 121 + if (!q || q.targetDid !== session.user.did) throw new Error("Forbidden"); 122 + await db.insert(answers).values({ 123 + questionId, 124 + authorDid: session.user.did, 125 + content, 126 + }); 127 + await revalidate([getQuestions.keyFor(q.targetDid)]); 128 + }, 129 + "submitAnswer", 130 + );
+130
src/lib/schema.ts
··· 1 + import { relations } from "drizzle-orm"; 2 + import { 3 + boolean, 4 + pgTable, 5 + text, 6 + timestamp, 7 + uuid, 8 + } from "drizzle-orm/pg-core"; 9 + 10 + export const users = pgTable("users", { 11 + did: text("did").primaryKey(), 12 + handle: text("handle").notNull().unique(), 13 + displayName: text("display_name"), 14 + avatarUrl: text("avatar_url"), 15 + questionsOpen: boolean("questions_open").notNull().default(false), 16 + createdAt: timestamp("created_at", { withTimezone: true }) 17 + .notNull() 18 + .defaultNow(), 19 + updatedAt: timestamp("updated_at", { withTimezone: true }) 20 + .notNull() 21 + .defaultNow() 22 + .$onUpdate(() => new Date()), 23 + }); 24 + 25 + export const questions = pgTable("questions", { 26 + id: uuid("id").primaryKey().defaultRandom(), 27 + authorDid: text("author_did") 28 + .notNull() 29 + .references(() => users.did), 30 + targetDid: text("target_did") 31 + .notNull() 32 + .references(() => users.did), 33 + content: text("content").notNull(), 34 + anonymous: boolean("anonymous").notNull().default(false), 35 + atUri: text("at_uri"), 36 + reindexed: boolean("reindexed").notNull().default(false), 37 + createdAt: timestamp("created_at", { withTimezone: true }) 38 + .notNull() 39 + .defaultNow(), 40 + }); 41 + 42 + export const answers = pgTable("answers", { 43 + id: uuid("id").primaryKey().defaultRandom(), 44 + questionId: uuid("question_id") 45 + .notNull() 46 + .references(() => questions.id), 47 + authorDid: text("author_did") 48 + .notNull() 49 + .references(() => users.did), 50 + content: text("content").notNull(), 51 + atUri: text("at_uri"), 52 + reindexed: boolean("reindexed").notNull().default(false), 53 + createdAt: timestamp("created_at", { withTimezone: true }) 54 + .notNull() 55 + .defaultNow(), 56 + }); 57 + 58 + export const sessions = pgTable("sessions", { 59 + id: text("id").primaryKey(), 60 + did: text("did") 61 + .notNull() 62 + .references(() => users.did), 63 + expiresAt: timestamp("expires_at", { withTimezone: true }).notNull(), 64 + createdAt: timestamp("created_at", { withTimezone: true }) 65 + .notNull() 66 + .defaultNow(), 67 + }); 68 + 69 + export const oauthStates = pgTable("oauth_states", { 70 + key: text("key").primaryKey(), 71 + state: text("state").notNull(), 72 + createdAt: timestamp("created_at", { withTimezone: true }) 73 + .notNull() 74 + .defaultNow(), 75 + }); 76 + 77 + export const oauthSessions = pgTable("oauth_sessions", { 78 + key: text("key").primaryKey(), 79 + session: text("session").notNull(), 80 + createdAt: timestamp("created_at", { withTimezone: true }) 81 + .notNull() 82 + .defaultNow(), 83 + }); 84 + 85 + export const usersRelations = relations(users, ({ many }) => ({ 86 + questionsAuthored: many(questions, { 87 + relationName: "questionAuthor", 88 + }), 89 + questionsReceived: many(questions, { 90 + relationName: "questionTarget", 91 + }), 92 + answers: many(answers), 93 + sessions: many(sessions), 94 + })); 95 + 96 + export const questionsRelations = relations(questions, ({ one, many }) => ({ 97 + author: one(users, { 98 + fields: [questions.authorDid], 99 + references: [users.did], 100 + relationName: "questionAuthor", 101 + }), 102 + target: one(users, { 103 + fields: [questions.targetDid], 104 + references: [users.did], 105 + relationName: "questionTarget", 106 + }), 107 + answers: many(answers), 108 + })); 109 + 110 + export const answersRelations = relations(answers, ({ one }) => ({ 111 + question: one(questions, { 112 + fields: [answers.questionId], 113 + references: [questions.id], 114 + }), 115 + author: one(users, { 116 + fields: [answers.authorDid], 117 + references: [users.did], 118 + }), 119 + })); 120 + 121 + export const sessionsRelations = relations(sessions, ({ one }) => ({ 122 + user: one(users, { 123 + fields: [sessions.did], 124 + references: [users.did], 125 + }), 126 + })); 127 + 128 + export const oauthStatesRelations = relations(oauthStates, () => ({})); 129 + 130 + export const oauthSessionsRelations = relations(oauthSessions, () => ({}));
+84
src/lib/session.ts
··· 1 + import { randomBytes } from "node:crypto"; 2 + import { and, eq, gt } from "drizzle-orm"; 3 + 4 + import { db } from "~/lib/db"; 5 + import { sessions } from "~/lib/schema"; 6 + 7 + export const SESSION_COOKIE_NAME = "askimut_session"; 8 + /** @deprecated use SESSION_COOKIE_NAME */ 9 + export const SESSION_COOKIE = SESSION_COOKIE_NAME; 10 + 11 + const THIRTY_DAYS_MS = 30 * 24 * 60 * 60 * 1000; 12 + 13 + export async function createSession(did: string): Promise<string> { 14 + const id = randomBytes(32).toString("hex"); 15 + const expiresAt = new Date(Date.now() + THIRTY_DAYS_MS); 16 + 17 + console.log("[createSession] Creating new session:", { 18 + did, 19 + sessionId: `${id.slice(0, 8)}...`, 20 + expiresAt, 21 + timestamp: new Date().toISOString() 22 + }); 23 + 24 + await db.insert(sessions).values({ id, did, expiresAt }); 25 + return id; 26 + } 27 + 28 + export async function getSession(sessionId: string) { 29 + console.log("[getSession] Looking up session:", { 30 + sessionId: sessionId ? `${sessionId.slice(0, 8)}...` : null, 31 + timestamp: new Date().toISOString() 32 + }); 33 + 34 + const row = await db.query.sessions.findFirst({ 35 + where: and(eq(sessions.id, sessionId), gt(sessions.expiresAt, new Date())), 36 + with: { user: true }, 37 + }); 38 + 39 + console.log("[getSession] Database result:", { 40 + found: !!row, 41 + hasUser: !!row?.user, 42 + expired: row ? row.expiresAt < new Date() : null, 43 + expiresAt: row?.expiresAt, 44 + userHandle: row?.user?.handle, 45 + timestamp: new Date().toISOString() 46 + }); 47 + 48 + return row ?? null; 49 + } 50 + 51 + export async function deleteSession(sessionId: string): Promise<void> { 52 + await db.delete(sessions).where(eq(sessions.id, sessionId)); 53 + } 54 + 55 + export function buildSessionCookie(sessionId: string): string { 56 + const maxAgeSec = Math.floor(THIRTY_DAYS_MS / 1000); 57 + const secure = process.env.APP_URL?.startsWith("https://") ? "; Secure" : ""; 58 + return `${SESSION_COOKIE_NAME}=${sessionId}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${maxAgeSec}${secure}`; 59 + } 60 + 61 + export function parseSessionCookie(cookieHeader: string | null): string | undefined { 62 + console.log("[parseSessionCookie] Parsing cookie header:", { 63 + hasCookieHeader: !!cookieHeader, 64 + cookieHeader: cookieHeader ? `${cookieHeader.slice(0, 50)}...` : null, 65 + timestamp: new Date().toISOString() 66 + }); 67 + 68 + if (!cookieHeader) return undefined; 69 + 70 + for (const part of cookieHeader.split(";")) { 71 + const [name, ...rest] = part.trim().split("="); 72 + if (name === SESSION_COOKIE_NAME && rest.length > 0) { 73 + const sessionId = decodeURIComponent(rest.join("=").trim()); 74 + console.log("[parseSessionCookie] Found session cookie:", { 75 + sessionId: `${sessionId.slice(0, 8)}...`, 76 + timestamp: new Date().toISOString() 77 + }); 78 + return sessionId; 79 + } 80 + } 81 + 82 + console.log("[parseSessionCookie] No session cookie found"); 83 + return undefined; 84 + }
+17
src/middleware.ts
··· 1 + import { createMiddleware } from "@solidjs/start/middleware"; 2 + 3 + import { getSession, parseSessionCookie } from "~/lib/session"; 4 + 5 + export default createMiddleware({ 6 + onRequest: [ 7 + async (event) => { 8 + const sessionId = parseSessionCookie(event.request.headers.get("cookie")); 9 + if (!sessionId) return; 10 + 11 + const row = await getSession(sessionId); 12 + if (row?.user) { 13 + event.locals.user = row.user; 14 + } 15 + }, 16 + ], 17 + });
+192
src/routes/[handle].module.css
··· 1 + .page { 2 + max-width: 640px; 3 + margin: 0 auto; 4 + padding: 1.5rem 1.25rem 3rem; 5 + } 6 + 7 + .header { 8 + display: flex; 9 + align-items: center; 10 + gap: 1rem; 11 + margin-bottom: 1.5rem; 12 + padding-bottom: 1.25rem; 13 + border-bottom: 1px solid var(--color-border); 14 + } 15 + 16 + .avatar { 17 + width: 64px; 18 + height: 64px; 19 + border-radius: 50%; 20 + object-fit: cover; 21 + background: var(--color-surface-hover); 22 + border: 1px solid var(--color-border); 23 + flex-shrink: 0; 24 + } 25 + 26 + .avatarPlaceholder { 27 + display: flex; 28 + align-items: center; 29 + justify-content: center; 30 + font-size: 1.5rem; 31 + font-weight: 600; 32 + color: var(--color-text-muted); 33 + } 34 + 35 + .profileText { 36 + min-width: 0; 37 + } 38 + 39 + .displayName { 40 + font-size: 1.25rem; 41 + font-weight: 600; 42 + color: var(--color-text); 43 + } 44 + 45 + .handle { 46 + font-size: 0.9rem; 47 + color: var(--color-text-muted); 48 + } 49 + 50 + .status { 51 + padding: 1rem 1.1rem; 52 + background: var(--color-surface); 53 + border: 1px solid var(--color-border); 54 + border-radius: var(--radius); 55 + color: var(--color-text-muted); 56 + font-size: 0.95rem; 57 + } 58 + 59 + .notFound { 60 + padding: 1rem 1.1rem; 61 + background: var(--color-surface); 62 + border: 1px solid var(--color-border); 63 + border-radius: var(--radius); 64 + font-size: 0.95rem; 65 + color: var(--color-danger); 66 + } 67 + 68 + .questionList { 69 + display: flex; 70 + flex-direction: column; 71 + gap: 1rem; 72 + } 73 + 74 + .questionCard { 75 + padding: 1.1rem 1.2rem; 76 + background: var(--color-surface); 77 + border: 1px solid var(--color-border); 78 + border-radius: var(--radius); 79 + } 80 + 81 + .questionContent { 82 + font-size: 1rem; 83 + color: var(--color-text); 84 + line-height: 1.55; 85 + white-space: pre-wrap; 86 + word-break: break-word; 87 + } 88 + 89 + .questionMeta { 90 + margin-top: 0.65rem; 91 + font-size: 0.8rem; 92 + color: var(--color-text-muted); 93 + } 94 + 95 + .answerBlock { 96 + margin-top: 1rem; 97 + padding: 0.85rem 1rem; 98 + padding-left: 1rem; 99 + border-left: 3px solid var(--color-primary); 100 + background: var(--color-bg); 101 + border-radius: 0 var(--radius) var(--radius) 0; 102 + } 103 + 104 + .answerLabel { 105 + font-size: 0.75rem; 106 + text-transform: uppercase; 107 + letter-spacing: 0.04em; 108 + color: var(--color-text-muted); 109 + margin-bottom: 0.35rem; 110 + } 111 + 112 + .answerText { 113 + font-size: 0.95rem; 114 + color: var(--color-text); 115 + line-height: 1.5; 116 + white-space: pre-wrap; 117 + word-break: break-word; 118 + } 119 + 120 + .form { 121 + display: flex; 122 + flex-direction: column; 123 + gap: 0.75rem; 124 + margin-top: 1.25rem; 125 + padding-top: 1.25rem; 126 + border-top: 1px solid var(--color-border); 127 + } 128 + 129 + .form:first-child { 130 + margin-top: 0; 131 + padding-top: 0; 132 + border-top: none; 133 + } 134 + 135 + .textarea { 136 + width: 100%; 137 + min-height: 88px; 138 + padding: 0.65rem 0.85rem; 139 + font-size: 0.95rem; 140 + font-family: var(--font); 141 + color: var(--color-text); 142 + background: var(--color-bg); 143 + border: 1px solid var(--color-border); 144 + border-radius: var(--radius); 145 + resize: vertical; 146 + outline: none; 147 + } 148 + 149 + .textarea:focus { 150 + border-color: var(--color-primary); 151 + } 152 + 153 + .toggleRow { 154 + display: flex; 155 + align-items: center; 156 + gap: 0.5rem; 157 + font-size: 0.9rem; 158 + color: var(--color-text-muted); 159 + } 160 + 161 + .toggleRow input { 162 + width: 1rem; 163 + height: 1rem; 164 + accent-color: var(--color-primary); 165 + } 166 + 167 + .button { 168 + align-self: flex-start; 169 + padding: 0.55rem 1rem; 170 + font-size: 0.9rem; 171 + font-weight: 600; 172 + font-family: var(--font); 173 + color: #fff; 174 + background: var(--color-primary); 175 + border: none; 176 + border-radius: var(--radius); 177 + cursor: pointer; 178 + transition: background 0.15s ease; 179 + } 180 + 181 + .button:hover { 182 + background: var(--color-primary-hover); 183 + } 184 + 185 + .sectionTitle { 186 + font-size: 0.85rem; 187 + font-weight: 600; 188 + text-transform: uppercase; 189 + letter-spacing: 0.05em; 190 + color: var(--color-text-muted); 191 + margin-bottom: 0.75rem; 192 + }
+235
src/routes/[handle].tsx
··· 1 + import { 2 + createAsync, 3 + useNavigate, 4 + useParams, 5 + } from "@solidjs/router"; 6 + import { For, Show } from "solid-js"; 7 + 8 + import { 9 + getCurrentUser, 10 + getQuestions, 11 + getUserByHandle, 12 + submitAnswer, 13 + submitQuestion, 14 + toggleQuestionsOpen, 15 + } from "~/lib/queries"; 16 + 17 + import styles from "./[handle].module.css"; 18 + 19 + function formatWhen(d: Date | string) { 20 + const date = typeof d === "string" ? new Date(d) : d; 21 + return date.toLocaleString(undefined, { 22 + dateStyle: "medium", 23 + timeStyle: "short", 24 + }); 25 + } 26 + 27 + export default function UserProfile() { 28 + const params = useParams(); 29 + const navigate = useNavigate(); 30 + const currentUser = createAsync(() => getCurrentUser()); 31 + const profileUser = createAsync(() => getUserByHandle(params.handle)); 32 + const questions = createAsync(async () => { 33 + const p = await getUserByHandle(params.handle); 34 + if (!p) return []; 35 + return getQuestions(p.did); 36 + }); 37 + 38 + const isOwn = () => { 39 + const c = currentUser(); 40 + const p = profileUser(); 41 + return Boolean(c && p && c.did === p.did); 42 + }; 43 + 44 + return ( 45 + <div class={styles.page}> 46 + <Show 47 + when={profileUser()} 48 + keyed 49 + fallback={<p class={styles.notFound}>User not found.</p>} 50 + > 51 + {(profile) => ( 52 + <> 53 + <header class={styles.header}> 54 + <Show 55 + when={profile.avatarUrl} 56 + keyed 57 + fallback={ 58 + <div 59 + class={`${styles.avatar} ${styles.avatarPlaceholder}`} 60 + aria-hidden 61 + > 62 + {(profile.displayName || profile.handle) 63 + .slice(0, 1) 64 + .toUpperCase()} 65 + </div> 66 + } 67 + > 68 + {(src) => ( 69 + <img 70 + class={styles.avatar} 71 + src={src} 72 + alt="" 73 + width={64} 74 + height={64} 75 + /> 76 + )} 77 + </Show> 78 + <div class={styles.profileText}> 79 + <div class={styles.displayName}> 80 + {profile.displayName || profile.handle} 81 + </div> 82 + <div class={styles.handle}>@{profile.handle}</div> 83 + </div> 84 + </header> 85 + 86 + <Show when={isOwn()}> 87 + <Show when={!profile.questionsOpen}> 88 + <p class={styles.status}> 89 + Your questions are closed. Open them to receive questions from 90 + others. 91 + </p> 92 + <form 93 + class={styles.form} 94 + action={toggleQuestionsOpen} 95 + method="post" 96 + > 97 + <button class={styles.button} type="submit"> 98 + Open your questions 99 + </button> 100 + </form> 101 + </Show> 102 + 103 + <Show when={profile.questionsOpen}> 104 + <p class={styles.sectionTitle}>Your questions</p> 105 + <div class={styles.questionList}> 106 + <For each={questions()}> 107 + {(q) => ( 108 + <article class={styles.questionCard}> 109 + <div class={styles.questionContent}>{q.content}</div> 110 + <div class={styles.questionMeta}> 111 + {q.anonymous 112 + ? "Anonymous" 113 + : q.author?.displayName || 114 + q.author?.handle || 115 + "Unknown"}{" "} 116 + · {formatWhen(q.createdAt)} 117 + </div> 118 + <For each={q.answers}> 119 + {(a) => ( 120 + <div class={styles.answerBlock}> 121 + <div class={styles.answerLabel}>Answer</div> 122 + <div class={styles.answerText}>{a.content}</div> 123 + <div class={styles.questionMeta}> 124 + {formatWhen(a.createdAt)} 125 + </div> 126 + </div> 127 + )} 128 + </For> 129 + <Show when={q.answers.length === 0}> 130 + <form 131 + class={styles.form} 132 + action={submitAnswer.with(q.id)} 133 + method="post" 134 + > 135 + <textarea 136 + class={styles.textarea} 137 + name="content" 138 + required 139 + placeholder="Write your answer…" 140 + rows={3} 141 + /> 142 + <button class={styles.button} type="submit"> 143 + Post answer 144 + </button> 145 + </form> 146 + </Show> 147 + </article> 148 + )} 149 + </For> 150 + </div> 151 + </Show> 152 + </Show> 153 + 154 + <Show when={!isOwn()}> 155 + <Show when={!profile.questionsOpen}> 156 + <p class={styles.status}> 157 + This user hasn&apos;t opened their questions yet. 158 + </p> 159 + </Show> 160 + 161 + <Show when={profile.questionsOpen}> 162 + <p class={styles.sectionTitle}>Questions</p> 163 + <div class={styles.questionList}> 164 + <For each={questions()}> 165 + {(q) => ( 166 + <article class={styles.questionCard}> 167 + <div class={styles.questionContent}>{q.content}</div> 168 + <div class={styles.questionMeta}> 169 + {q.anonymous 170 + ? "Anonymous" 171 + : q.author?.displayName || 172 + q.author?.handle || 173 + "Unknown"}{" "} 174 + · {formatWhen(q.createdAt)} 175 + </div> 176 + <For each={q.answers}> 177 + {(a) => ( 178 + <div class={styles.answerBlock}> 179 + <div class={styles.answerLabel}>Answer</div> 180 + <div class={styles.answerText}>{a.content}</div> 181 + <div class={styles.questionMeta}> 182 + {formatWhen(a.createdAt)} 183 + </div> 184 + </div> 185 + )} 186 + </For> 187 + </article> 188 + )} 189 + </For> 190 + </div> 191 + 192 + <Show when={currentUser()}> 193 + <form 194 + class={styles.form} 195 + action={submitQuestion.with(profile.did)} 196 + method="post" 197 + > 198 + <textarea 199 + class={styles.textarea} 200 + name="content" 201 + required 202 + placeholder="Ask a question…" 203 + rows={3} 204 + /> 205 + <label class={styles.toggleRow}> 206 + <input type="checkbox" name="anonymous" /> 207 + Ask anonymously 208 + </label> 209 + <button class={styles.button} type="submit"> 210 + Send question 211 + </button> 212 + </form> 213 + </Show> 214 + <Show when={!currentUser()}> 215 + <p class={styles.status}> 216 + <a 217 + href="/" 218 + onClick={(e) => { 219 + e.preventDefault(); 220 + navigate("/"); 221 + }} 222 + > 223 + Sign in 224 + </a>{" "} 225 + to ask a question. 226 + </p> 227 + </Show> 228 + </Show> 229 + </Show> 230 + </> 231 + )} 232 + </Show> 233 + </div> 234 + ); 235 + }
+12
src/routes/client-metadata.json.ts
··· 1 + import { getOAuthClientMetadata } from "~/lib/oauth"; 2 + 3 + export function GET() { 4 + const metadata = getOAuthClientMetadata(); 5 + 6 + return new Response(JSON.stringify(metadata), { 7 + headers: { 8 + "Content-Type": "application/json", 9 + "Cache-Control": "public, max-age=3600", 10 + }, 11 + }); 12 + }
+85
src/routes/index.module.css
··· 1 + .page { 2 + min-height: 100vh; 3 + display: flex; 4 + align-items: center; 5 + justify-content: center; 6 + padding: 1.5rem; 7 + background: var(--color-bg); 8 + } 9 + 10 + .card { 11 + width: 100%; 12 + max-width: 420px; 13 + padding: 2rem; 14 + background: var(--color-surface); 15 + border: 1px solid var(--color-border); 16 + border-radius: var(--radius); 17 + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35); 18 + } 19 + 20 + .title { 21 + font-size: 2rem; 22 + font-weight: 700; 23 + letter-spacing: -0.02em; 24 + margin-bottom: 0.35rem; 25 + color: var(--color-text); 26 + } 27 + 28 + .subtitle { 29 + font-size: 0.95rem; 30 + color: var(--color-text-muted); 31 + margin-bottom: 1.75rem; 32 + line-height: 1.5; 33 + } 34 + 35 + .form { 36 + display: flex; 37 + flex-direction: column; 38 + gap: 1rem; 39 + } 40 + 41 + .input { 42 + width: 100%; 43 + padding: 0.65rem 0.85rem; 44 + font-size: 1rem; 45 + font-family: var(--font); 46 + color: var(--color-text); 47 + background: var(--color-bg); 48 + border: 1px solid var(--color-border); 49 + border-radius: var(--radius); 50 + outline: none; 51 + transition: border-color 0.15s ease; 52 + } 53 + 54 + .input:focus { 55 + border-color: var(--color-primary); 56 + } 57 + 58 + .input::placeholder { 59 + color: var(--color-text-muted); 60 + } 61 + 62 + .button { 63 + display: inline-flex; 64 + align-items: center; 65 + justify-content: center; 66 + padding: 0.7rem 1rem; 67 + font-size: 1rem; 68 + font-weight: 600; 69 + font-family: var(--font); 70 + color: #fff; 71 + background: var(--color-primary); 72 + border: none; 73 + border-radius: var(--radius); 74 + cursor: pointer; 75 + transition: background 0.15s ease; 76 + } 77 + 78 + .button:hover { 79 + background: var(--color-primary-hover); 80 + } 81 + 82 + .button:focus-visible { 83 + outline: 2px solid var(--color-primary); 84 + outline-offset: 2px; 85 + }
+47
src/routes/index.tsx
··· 1 + import { Navigate, createAsync, useSubmission } from "@solidjs/router"; 2 + import { Show } from "solid-js"; 3 + 4 + import { getCurrentUser, initiateLogin } from "~/lib/queries"; 5 + 6 + import styles from "./index.module.css"; 7 + 8 + export default function Home() { 9 + const user = createAsync(() => getCurrentUser()); 10 + const loggingIn = useSubmission(initiateLogin); 11 + 12 + return ( 13 + <> 14 + <Show when={user()} keyed> 15 + {(u) => <Navigate href={`/${u.handle}`} />} 16 + </Show> 17 + <Show when={!user()}> 18 + <div class={styles.page}> 19 + <div class={styles.card}> 20 + <h1 class={styles.title}>Askimut</h1> 21 + <p class={styles.subtitle}> 22 + Ask me anything, powered by AT Protocol 23 + </p> 24 + <form class={styles.form} action={initiateLogin} method="post"> 25 + <input 26 + class={styles.input} 27 + name="handle" 28 + type="text" 29 + autocomplete="username" 30 + placeholder="your.handle.bsky.social" 31 + required 32 + /> 33 + <button class={styles.button} type="submit"> 34 + Sign in with Bluesky 35 + </button> 36 + </form> 37 + <Show when={loggingIn.result?.error}> 38 + <p style={{ color: "red", "margin-top": "0.5rem" }}> 39 + {loggingIn.result!.error} 40 + </p> 41 + </Show> 42 + </div> 43 + </div> 44 + </Show> 45 + </> 46 + ); 47 + }
+65
src/routes/oauth/callback.ts
··· 1 + import { Agent } from "@atproto/api"; 2 + import { type APIEvent } from "@solidjs/start/server"; 3 + 4 + import { getOAuthClient } from "~/lib/oauth"; 5 + import { buildSessionCookie, createSession } from "~/lib/session"; 6 + import { db } from "~/lib/db"; 7 + import { users } from "~/lib/schema"; 8 + 9 + export async function GET(event: APIEvent) { 10 + const oauth = await getOAuthClient(); 11 + let oauthSession; 12 + try { 13 + const result = await oauth.callback(new URL(event.request.url).searchParams); 14 + oauthSession = result.session; 15 + } catch (err) { 16 + console.error("OAuth callback error", err); 17 + return new Response("OAuth callback failed", { status: 400 }); 18 + } 19 + 20 + const agent = new Agent(oauthSession); 21 + const { data: profile } = await agent.app.bsky.actor.getProfile({ 22 + actor: oauthSession.did, 23 + }); 24 + 25 + const did = profile.did; 26 + const handle = profile.handle; 27 + const displayName = profile.displayName ?? null; 28 + const avatarUrl = profile.avatar ?? null; 29 + 30 + await db 31 + .insert(users) 32 + .values({ 33 + did, 34 + handle, 35 + displayName, 36 + avatarUrl, 37 + questionsOpen: false, 38 + }) 39 + .onConflictDoUpdate({ 40 + target: users.did, 41 + set: { 42 + handle, 43 + displayName, 44 + avatarUrl, 45 + updatedAt: new Date(), 46 + }, 47 + }); 48 + 49 + const sessionId = await createSession(did); 50 + const sessionCookie = buildSessionCookie(sessionId); 51 + 52 + console.log("[OAuth callback] Session created and redirecting:", { 53 + did, 54 + handle, 55 + sessionId: `${sessionId.slice(0, 8)}...`, 56 + redirectTo: `/${encodeURIComponent(handle)}`, 57 + cookieSet: sessionCookie.includes(sessionId), 58 + timestamp: new Date().toISOString() 59 + }); 60 + 61 + const headers = new Headers({ Location: `/${encodeURIComponent(handle)}` }); 62 + headers.append("Set-Cookie", sessionCookie); 63 + 64 + return new Response(null, { status: 302, headers }); 65 + }
+26
src/routes/oauth/login.ts
··· 1 + "use server"; 2 + 3 + import { redirect } from "@solidjs/router"; 4 + import { getOAuthClient } from "~/lib/oauth"; 5 + 6 + export async function initiateLogin(formData: FormData) { 7 + const handle = String(formData.get("handle")).trim(); 8 + 9 + if (!handle) { 10 + return { error: "Handle is required" }; 11 + } 12 + 13 + try { 14 + const oauth = await getOAuthClient(); 15 + const url = await oauth.authorize(handle, { 16 + scope: "atproto transition:generic", 17 + }); 18 + throw redirect(url.toString()); 19 + } catch (err) { 20 + if (err instanceof Response) throw err; 21 + console.error("OAuth authorize failed:", err); 22 + return { 23 + error: `Could not initiate login: ${err instanceof Error ? err.message : String(err)}`, 24 + }; 25 + } 26 + }
+12
src/routes/oauth/logout.ts
··· 1 + import { redirect } from "@solidjs/router"; 2 + import type { APIEvent } from "@solidjs/start/server"; 3 + import { deleteCookie, getCookie } from "vinxi/http"; 4 + 5 + import { deleteSession, SESSION_COOKIE } from "~/lib/session"; 6 + 7 + export async function GET(_event: APIEvent) { 8 + const id = getCookie(SESSION_COOKIE); 9 + if (id) await deleteSession(id); 10 + deleteCookie(SESSION_COOKIE); 11 + return redirect("/"); 12 + }
+18
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ESNext", 4 + "module": "ESNext", 5 + "moduleResolution": "bundler", 6 + "allowSyntheticDefaultImports": true, 7 + "esModuleInterop": true, 8 + "jsx": "preserve", 9 + "jsxImportSource": "solid-js", 10 + "types": ["vinxi/types/client", "node"], 11 + "paths": { 12 + "~/*": ["./src/*"] 13 + }, 14 + "strict": true, 15 + "noEmit": true, 16 + "skipLibCheck": true 17 + } 18 + }