├── .dockerignore ├── .editorconfig ├── .github └── workflows │ └── build-docker.yml ├── .gitignore ├── .vscode ├── launch.json └── settings.json ├── Dockerfile ├── README.md ├── biome.json ├── entries ├── node.ts └── workerd.ts ├── package.json ├── pnpm-lock.yaml ├── src ├── api │ ├── index.ts │ └── synthesis.ts ├── index.html ├── index.ts └── utils │ ├── buildSsml.ts │ ├── retry.ts │ └── synthesis.ts ├── tsconfig.json ├── tsup.config.ts └── wrangler.toml /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 -------------------------------------------------------------------------------- /.github/workflows/build-docker.yml: -------------------------------------------------------------------------------- 1 | name: build-docker 2 | 3 | on: 4 | push: 5 | branches: 6 | - "main" 7 | paths-ignore: 8 | - "**/dist/*" 9 | - "packages/ui/**" 10 | - "README.md" 11 | 12 | jobs: 13 | docker: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4 18 | - name: Docker meta 19 | id: meta 20 | uses: docker/metadata-action@v5 21 | with: 22 | images: | 23 | ${{ secrets.DOCKERHUB_USERNAME }}/read-aloud 24 | tags: | 25 | type=ref,event=branch 26 | 27 | - name: Set up QEMU 28 | uses: docker/setup-qemu-action@v3 29 | 30 | - name: Set up Docker Buildx 31 | uses: docker/setup-buildx-action@v3 32 | 33 | - name: Login to DockerHub 34 | if: github.event_name != 'pull_request' 35 | uses: docker/login-action@v3 36 | with: 37 | username: ${{ secrets.DOCKERHUB_USERNAME }} 38 | password: ${{ secrets.DOCKERHUB_TOKEN }} 39 | - name: Build and push 40 | uses: docker/build-push-action@v5 41 | with: 42 | platforms: linux/amd64,linux/arm64 43 | context: . 44 | push: ${{ github.event_name != 'pull_request' }} 45 | tags: ${{ steps.meta.outputs.tags }} 46 | labels: ${{ steps.meta.outputs.labels }} 47 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | 4 | .dev.vars 5 | 6 | **/*.*profile 7 | 8 | dist-node 9 | dist-prebuild 10 | dist-worker 11 | 12 | .wrangler -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Node Synthesis", 11 | "skipFiles": ["/**"], 12 | "program": "${workspaceFolder}/packages/cf-worker/dist-node/node.mjs", 13 | "outFiles": ["${workspaceFolder}/**/*.js"] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "[json]": { 3 | "editor.defaultFormatter": "biomejs.biome" 4 | }, 5 | "[jsonc]": { 6 | "editor.defaultFormatter": "biomejs.biome" 7 | }, 8 | "[typescript]": { 9 | "editor.defaultFormatter": "biomejs.biome" 10 | }, 11 | "[typescriptreact]": { 12 | "editor.defaultFormatter": "biomejs.biome" 13 | }, 14 | "cSpell.words": [ 15 | "ifreetime", 16 | "ireadnote", 17 | "Legado", 18 | "sourcereader", 19 | "SSML", 20 | "wxxxcxx" 21 | ], 22 | "typescript.tsdk": "node_modules/typescript/lib" 23 | } 24 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:22-slim AS base 2 | 3 | FROM base AS builder 4 | 5 | # RUN apk add --no-cache gcompat 6 | WORKDIR /app 7 | 8 | COPY ./ ./ 9 | 10 | RUN corepack enable pnpm && pnpm install && pnpm run build:node 11 | 12 | FROM base AS runner 13 | WORKDIR /app 14 | 15 | RUN addgroup --system --gid 1001 nodejs 16 | RUN adduser --system --uid 1001 hono 17 | 18 | COPY --from=builder --chown=hono:nodejs /app/dist-node /app/dist 19 | 20 | USER hono 21 | EXPOSE 3000 22 | 23 | CMD ["node", "/app/dist/node.mjs"] 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 微软“朗读” TTS 转发器 2 | 3 | 运行于 Cloudflare Workers / Node.js (Docker) 上的微软“大声朗读”转发器。通过简单的 HTTP GET 请求,将文本转换为语音。 4 | 5 | **可以直接使用的资源**:https://github.com/yy4382/read-aloud/issues/1 6 | 7 | ## “大声朗读” 是什么? 8 | 9 | “大声朗读” (Read aloud) 是微软为一系列自家服务提供的文字转语音服务。由于大家基本上都使用的是 Edge 浏览器上的接口,所以也被时常称为 "**Edge TTS**"。 10 | 11 | ## 自行部署 12 | 13 | ### Cloudflare Workers 14 | 15 | [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/yy4382/read-aloud) 16 | 17 | 指南:[Deploy with Workers 按钮使用指南 - Yunfi](https://yfi.moe/post/deploy-with-cloudflare-btn-guide) 18 | 19 | 环境变量设置:在 Cloudflare 面板的当前 Workers 项目中,找到 Settings -> Variables and Secrets,即可添加环境变量。 20 | 21 | ```plaintext 22 | TOKEN=YOUR_TOKEN # Optional 23 | ``` 24 | 25 | ### Node.js (Docker) 26 | 27 | ```bash 28 | docker run -d --name read-aloud -p 3000:3000 -e TOKEN=YOUR_TOKEN yunfinibol/read-aloud:main 29 | ``` 30 | 31 | 记得将 `YOUR_TOKEN` 替换为你的实际令牌。 32 | 33 | ## API 参考 34 | 35 | Swagger 文档: 36 | 37 | ## 相关项目 38 | 39 | - [wxxxcxx/ms-ra-forwarder: 免费的在线文本转语音 API](https://github.com/wxxxcxx/ms-ra-forwarder) 本项目的“祖师爷”,部分代码灵感的来源。只支持 Node.js 运行时。 40 | - [yy4382/ms-ra-forwarder-for-ifreetime](https://github.com/yy4382/ms-ra-forwarder-for-ifreetime) Fork 自 wxxxcxx/ms-ra-forwarder,添加了对爱阅书香和爱阅记的支持。本项目是它的移植重写版本。 41 | - [yy4382/tts-importer](https://github.com/yy4382/tts-importer) 本项目的姊妹项目,使用微软 Azure 的官方接口,支持更多语音和其他高级配置。 42 | 43 | 更多有关听书的信息,请访问 [我的听书方法汇总 - Yunfi](https://yfi.moe/book-listening-collection) 44 | 45 | ## How does the bundling / deployment work? 46 | 47 | ### Cloudflare Workers 48 | 49 | Deploy to Cloudflare 按钮默认使用 package.json 中 deploy 脚本进行部署。 50 | 51 | 流程:tsup 打包到 dist-prebuild 目录(`pnpm run prebuild:worker`)(由 wrangler.toml 中的 build 参数运行该命令),然后 wrangler deploy 将 `dist-prebuild/workerd.mjs`(由 wrangler.toml 中的 main 参数指定该文件)部署到 Cloudflare Workers。 52 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.2/schema.json", 3 | "vcs": { 4 | "enabled": false, 5 | "clientKind": "git", 6 | "useIgnoreFile": false 7 | }, 8 | "files": { 9 | "ignoreUnknown": false, 10 | "ignore": ["**/dist/*", "**/dist-*/*"] 11 | }, 12 | "formatter": { 13 | "enabled": true, 14 | "indentStyle": "space", 15 | "indentWidth": 2 16 | }, 17 | "organizeImports": { 18 | "enabled": true 19 | }, 20 | "linter": { 21 | "enabled": true, 22 | "rules": { 23 | "recommended": true 24 | } 25 | }, 26 | "javascript": { 27 | "formatter": { 28 | "quoteStyle": "double" 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /entries/node.ts: -------------------------------------------------------------------------------- 1 | import { serve } from "@hono/node-server"; 2 | import app from "../src"; 3 | 4 | declare global { 5 | var DEBUG: boolean; 6 | } 7 | 8 | if (process.env.TOKEN) 9 | console.info(`Running with token: ${globalThis.process.env.TOKEN}`); 10 | else 11 | console.warn( 12 | "Running without token, please consider set TOKEN in environment variables", 13 | ); 14 | 15 | serve(app); 16 | -------------------------------------------------------------------------------- /entries/workerd.ts: -------------------------------------------------------------------------------- 1 | import app from "../src"; 2 | 3 | export default app; 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "read-aloud", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "prebuild:worker": "tsup --outDir=dist-prebuild entries/workerd.ts", 8 | "dev:worker": "wrangler dev", 9 | "deploy": "wrangler deploy --minify --outdir=dist-worker", 10 | "dev:node": "tsup-node --watch --onSuccess \"node dist-node/node.mjs\"", 11 | "build:node": "tsup-node" 12 | }, 13 | "keywords": [], 14 | "author": "", 15 | "license": "ISC", 16 | "dependencies": { 17 | "@hono/node-server": "^1.13.7", 18 | "@hono/swagger-ui": "^0.4.1", 19 | "@hono/zod-openapi": "^0.16.2", 20 | "hono": "^4.6.3", 21 | "xast-util-to-xml": "^4.0.0", 22 | "xastscript": "^4.0.0" 23 | }, 24 | "devDependencies": { 25 | "@biomejs/biome": "1.9.2", 26 | "@cloudflare/workers-types": "^4.20250506.0", 27 | "@types/node": "20.8.3", 28 | "@types/xast": "^2.0.4", 29 | "tsup": "^8.3.5", 30 | "typescript": "~5.6.2", 31 | "wrangler": "^4.14.1" 32 | }, 33 | "packageManager": "pnpm@9.11.0+sha256.1c0e33f70e5df9eede84a357bdfa0b1f9dba6e58194628d48a1055756f553754" 34 | } 35 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@hono/node-server': 12 | specifier: ^1.13.7 13 | version: 1.13.7(hono@4.6.3) 14 | '@hono/swagger-ui': 15 | specifier: ^0.4.1 16 | version: 0.4.1(hono@4.6.3) 17 | '@hono/zod-openapi': 18 | specifier: ^0.16.2 19 | version: 0.16.2(hono@4.6.3)(zod@3.24.4) 20 | hono: 21 | specifier: ^4.6.3 22 | version: 4.6.3 23 | xast-util-to-xml: 24 | specifier: ^4.0.0 25 | version: 4.0.0 26 | xastscript: 27 | specifier: ^4.0.0 28 | version: 4.0.0 29 | devDependencies: 30 | '@biomejs/biome': 31 | specifier: 1.9.2 32 | version: 1.9.2 33 | '@cloudflare/workers-types': 34 | specifier: ^4.20250506.0 35 | version: 4.20250506.0 36 | '@types/node': 37 | specifier: 20.8.3 38 | version: 20.8.3 39 | '@types/xast': 40 | specifier: ^2.0.4 41 | version: 2.0.4 42 | tsup: 43 | specifier: ^8.3.5 44 | version: 8.3.5(jiti@2.4.2)(postcss@8.5.3)(typescript@5.6.3)(yaml@2.7.1) 45 | typescript: 46 | specifier: ~5.6.2 47 | version: 5.6.3 48 | wrangler: 49 | specifier: ^4.14.1 50 | version: 4.14.1(@cloudflare/workers-types@4.20250506.0) 51 | 52 | packages/ui: 53 | dependencies: 54 | '@hookform/resolvers': 55 | specifier: ^3.9.1 56 | version: 3.9.1(react-hook-form@7.53.2(react@18.3.1)) 57 | '@radix-ui/react-accordion': 58 | specifier: ^1.2.1 59 | version: 1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 60 | '@radix-ui/react-dropdown-menu': 61 | specifier: ^2.1.2 62 | version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 63 | '@radix-ui/react-label': 64 | specifier: ^2.1.0 65 | version: 2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 66 | '@radix-ui/react-select': 67 | specifier: ^2.1.2 68 | version: 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 69 | '@radix-ui/react-slot': 70 | specifier: ^1.1.0 71 | version: 1.1.0(@types/react@18.3.12)(react@18.3.1) 72 | '@radix-ui/react-toast': 73 | specifier: ^1.2.2 74 | version: 1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 75 | class-variance-authority: 76 | specifier: ^0.7.0 77 | version: 0.7.0 78 | clsx: 79 | specifier: ^2.1.1 80 | version: 2.1.1 81 | lucide-react: 82 | specifier: ^0.460.0 83 | version: 0.460.0(react@18.3.1) 84 | react: 85 | specifier: ^18.3.1 86 | version: 18.3.1 87 | react-dom: 88 | specifier: ^18.3.1 89 | version: 18.3.1(react@18.3.1) 90 | react-hook-form: 91 | specifier: ^7.53.2 92 | version: 7.53.2(react@18.3.1) 93 | tailwind-merge: 94 | specifier: ^2.5.4 95 | version: 2.5.4 96 | tailwindcss-animate: 97 | specifier: ^1.0.7 98 | version: 1.0.7(tailwindcss@3.4.15) 99 | zod: 100 | specifier: ^3.23.8 101 | version: 3.23.8 102 | devDependencies: 103 | '@eslint/js': 104 | specifier: ^9.13.0 105 | version: 9.15.0 106 | '@types/node': 107 | specifier: 20.8.3 108 | version: 20.8.3 109 | '@types/react': 110 | specifier: ^18.3.12 111 | version: 18.3.12 112 | '@types/react-dom': 113 | specifier: ^18.3.1 114 | version: 18.3.1 115 | '@vitejs/plugin-react': 116 | specifier: ^4.3.3 117 | version: 4.3.3(vite@5.4.11(@types/node@20.8.3)) 118 | autoprefixer: 119 | specifier: ^10.4.20 120 | version: 10.4.20(postcss@8.4.49) 121 | globals: 122 | specifier: ^15.11.0 123 | version: 15.12.0 124 | postcss: 125 | specifier: ^8.4.49 126 | version: 8.4.49 127 | tailwindcss: 128 | specifier: ^3.4.15 129 | version: 3.4.15 130 | typescript: 131 | specifier: ~5.6.2 132 | version: 5.6.3 133 | vite: 134 | specifier: ^5.4.10 135 | version: 5.4.11(@types/node@20.8.3) 136 | 137 | packages: 138 | 139 | '@alloc/quick-lru@5.2.0': 140 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 141 | engines: {node: '>=10'} 142 | 143 | '@ampproject/remapping@2.3.0': 144 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 145 | engines: {node: '>=6.0.0'} 146 | 147 | '@asteasolutions/zod-to-openapi@7.1.2': 148 | resolution: {integrity: sha512-tuDcV4aGAlY4eaZ8Qmf1efPL33hwJKdpCSbI6vJqXU5Wkz9IIyCrb3u3fExZyyMGzmLKcJH+CHI5UKvNBPlyjg==} 149 | peerDependencies: 150 | zod: ^3.20.2 151 | 152 | '@babel/code-frame@7.26.2': 153 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 154 | engines: {node: '>=6.9.0'} 155 | 156 | '@babel/compat-data@7.26.2': 157 | resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} 158 | engines: {node: '>=6.9.0'} 159 | 160 | '@babel/core@7.26.0': 161 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} 162 | engines: {node: '>=6.9.0'} 163 | 164 | '@babel/generator@7.26.2': 165 | resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} 166 | engines: {node: '>=6.9.0'} 167 | 168 | '@babel/helper-compilation-targets@7.25.9': 169 | resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} 170 | engines: {node: '>=6.9.0'} 171 | 172 | '@babel/helper-module-imports@7.25.9': 173 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} 174 | engines: {node: '>=6.9.0'} 175 | 176 | '@babel/helper-module-transforms@7.26.0': 177 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} 178 | engines: {node: '>=6.9.0'} 179 | peerDependencies: 180 | '@babel/core': ^7.0.0 181 | 182 | '@babel/helper-plugin-utils@7.25.9': 183 | resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} 184 | engines: {node: '>=6.9.0'} 185 | 186 | '@babel/helper-string-parser@7.25.9': 187 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 188 | engines: {node: '>=6.9.0'} 189 | 190 | '@babel/helper-validator-identifier@7.25.9': 191 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 192 | engines: {node: '>=6.9.0'} 193 | 194 | '@babel/helper-validator-option@7.25.9': 195 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} 196 | engines: {node: '>=6.9.0'} 197 | 198 | '@babel/helpers@7.26.0': 199 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} 200 | engines: {node: '>=6.9.0'} 201 | 202 | '@babel/parser@7.26.2': 203 | resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} 204 | engines: {node: '>=6.0.0'} 205 | hasBin: true 206 | 207 | '@babel/plugin-transform-react-jsx-self@7.25.9': 208 | resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} 209 | engines: {node: '>=6.9.0'} 210 | peerDependencies: 211 | '@babel/core': ^7.0.0-0 212 | 213 | '@babel/plugin-transform-react-jsx-source@7.25.9': 214 | resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} 215 | engines: {node: '>=6.9.0'} 216 | peerDependencies: 217 | '@babel/core': ^7.0.0-0 218 | 219 | '@babel/template@7.25.9': 220 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} 221 | engines: {node: '>=6.9.0'} 222 | 223 | '@babel/traverse@7.25.9': 224 | resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} 225 | engines: {node: '>=6.9.0'} 226 | 227 | '@babel/types@7.26.0': 228 | resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} 229 | engines: {node: '>=6.9.0'} 230 | 231 | '@biomejs/biome@1.9.2': 232 | resolution: {integrity: sha512-4j2Gfwft8Jqp1X0qLYvK4TEy4xhTo4o6rlvJPsjPeEame8gsmbGQfOPBkw7ur+7/Z/f0HZmCZKqbMvR7vTXQYQ==} 233 | engines: {node: '>=14.21.3'} 234 | hasBin: true 235 | 236 | '@biomejs/cli-darwin-arm64@1.9.2': 237 | resolution: {integrity: sha512-rbs9uJHFmhqB3Td0Ro+1wmeZOHhAPTL3WHr8NtaVczUmDhXkRDWScaxicG9+vhSLj1iLrW47itiK6xiIJy6vaA==} 238 | engines: {node: '>=14.21.3'} 239 | cpu: [arm64] 240 | os: [darwin] 241 | 242 | '@biomejs/cli-darwin-x64@1.9.2': 243 | resolution: {integrity: sha512-BlfULKijNaMigQ9GH9fqJVt+3JTDOSiZeWOQtG/1S1sa8Lp046JHG3wRJVOvekTPL9q/CNFW1NVG8J0JN+L1OA==} 244 | engines: {node: '>=14.21.3'} 245 | cpu: [x64] 246 | os: [darwin] 247 | 248 | '@biomejs/cli-linux-arm64-musl@1.9.2': 249 | resolution: {integrity: sha512-ZATvbUWhNxegSALUnCKWqetTZqrK72r2RsFD19OK5jXDj/7o1hzI1KzDNG78LloZxftrwr3uI9SqCLh06shSZw==} 250 | engines: {node: '>=14.21.3'} 251 | cpu: [arm64] 252 | os: [linux] 253 | 254 | '@biomejs/cli-linux-arm64@1.9.2': 255 | resolution: {integrity: sha512-T8TJuSxuBDeQCQzxZu2o3OU4eyLumTofhCxxFd3+aH2AEWVMnH7Z/c3QP1lHI5RRMBP9xIJeMORqDQ5j+gVZzw==} 256 | engines: {node: '>=14.21.3'} 257 | cpu: [arm64] 258 | os: [linux] 259 | 260 | '@biomejs/cli-linux-x64-musl@1.9.2': 261 | resolution: {integrity: sha512-CjPM6jT1miV5pry9C7qv8YJk0FIZvZd86QRD3atvDgfgeh9WQU0k2Aoo0xUcPdTnoz0WNwRtDicHxwik63MmSg==} 262 | engines: {node: '>=14.21.3'} 263 | cpu: [x64] 264 | os: [linux] 265 | 266 | '@biomejs/cli-linux-x64@1.9.2': 267 | resolution: {integrity: sha512-T0cPk3C3Jr2pVlsuQVTBqk2qPjTm8cYcTD9p/wmR9MeVqui1C/xTVfOIwd3miRODFMrJaVQ8MYSXnVIhV9jTjg==} 268 | engines: {node: '>=14.21.3'} 269 | cpu: [x64] 270 | os: [linux] 271 | 272 | '@biomejs/cli-win32-arm64@1.9.2': 273 | resolution: {integrity: sha512-2x7gSty75bNIeD23ZRPXyox6Z/V0M71ObeJtvQBhi1fgrvPdtkEuw7/0wEHg6buNCubzOFuN9WYJm6FKoUHfhg==} 274 | engines: {node: '>=14.21.3'} 275 | cpu: [arm64] 276 | os: [win32] 277 | 278 | '@biomejs/cli-win32-x64@1.9.2': 279 | resolution: {integrity: sha512-JC3XvdYcjmu1FmAehVwVV0SebLpeNTnO2ZaMdGCSOdS7f8O9Fq14T2P1gTG1Q29Q8Dt1S03hh0IdVpIZykOL8g==} 280 | engines: {node: '>=14.21.3'} 281 | cpu: [x64] 282 | os: [win32] 283 | 284 | '@cloudflare/kv-asset-handler@0.4.0': 285 | resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} 286 | engines: {node: '>=18.0.0'} 287 | 288 | '@cloudflare/unenv-preset@2.3.1': 289 | resolution: {integrity: sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==} 290 | peerDependencies: 291 | unenv: 2.0.0-rc.15 292 | workerd: ^1.20250320.0 293 | peerDependenciesMeta: 294 | workerd: 295 | optional: true 296 | 297 | '@cloudflare/workerd-darwin-64@1.20250428.0': 298 | resolution: {integrity: sha512-6nVe9oV4Hdec6ctzMtW80TiDvNTd2oFPi3VsKqSDVaJSJbL+4b6seyJ7G/UEPI+si6JhHBSLV2/9lNXNGLjClA==} 299 | engines: {node: '>=16'} 300 | cpu: [x64] 301 | os: [darwin] 302 | 303 | '@cloudflare/workerd-darwin-arm64@1.20250428.0': 304 | resolution: {integrity: sha512-/TB7bh7SIJ5f+6r4PHsAz7+9Qal/TK1cJuKFkUno1kqGlZbdrMwH0ATYwlWC/nBFeu2FB3NUolsTntEuy23hnQ==} 305 | engines: {node: '>=16'} 306 | cpu: [arm64] 307 | os: [darwin] 308 | 309 | '@cloudflare/workerd-linux-64@1.20250428.0': 310 | resolution: {integrity: sha512-9eCbj+R3CKqpiXP6DfAA20DxKge+OTj7Hyw3ZewiEhWH9INIHiJwJQYybu4iq9kJEGjnGvxgguLFjSCWm26hgg==} 311 | engines: {node: '>=16'} 312 | cpu: [x64] 313 | os: [linux] 314 | 315 | '@cloudflare/workerd-linux-arm64@1.20250428.0': 316 | resolution: {integrity: sha512-D9NRBnW46nl1EQsP13qfkYb5lbt4C6nxl38SBKY/NOcZAUoHzNB5K0GaK8LxvpkM7X/97ySojlMfR5jh5DNXYQ==} 317 | engines: {node: '>=16'} 318 | cpu: [arm64] 319 | os: [linux] 320 | 321 | '@cloudflare/workerd-windows-64@1.20250428.0': 322 | resolution: {integrity: sha512-RQCRj28eitjKD0tmei6iFOuWqMuHMHdNGEigRmbkmuTlpbWHNAoHikgCzZQ/dkKDdatA76TmcpbyECNf31oaTA==} 323 | engines: {node: '>=16'} 324 | cpu: [x64] 325 | os: [win32] 326 | 327 | '@cloudflare/workers-types@4.20250506.0': 328 | resolution: {integrity: sha512-H6ny+U4sfi3m3c0hmvbjhPZaAhoPtJhohgOzqULURrXNIR7cR7ivfd+n+BwIp7MGmfgY/DCo3yIaRYlMASEcdQ==} 329 | 330 | '@cspotcode/source-map-support@0.8.1': 331 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 332 | engines: {node: '>=12'} 333 | 334 | '@emnapi/runtime@1.4.3': 335 | resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} 336 | 337 | '@esbuild/aix-ppc64@0.21.5': 338 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 339 | engines: {node: '>=12'} 340 | cpu: [ppc64] 341 | os: [aix] 342 | 343 | '@esbuild/aix-ppc64@0.24.0': 344 | resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} 345 | engines: {node: '>=18'} 346 | cpu: [ppc64] 347 | os: [aix] 348 | 349 | '@esbuild/aix-ppc64@0.25.2': 350 | resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} 351 | engines: {node: '>=18'} 352 | cpu: [ppc64] 353 | os: [aix] 354 | 355 | '@esbuild/android-arm64@0.21.5': 356 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 357 | engines: {node: '>=12'} 358 | cpu: [arm64] 359 | os: [android] 360 | 361 | '@esbuild/android-arm64@0.24.0': 362 | resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} 363 | engines: {node: '>=18'} 364 | cpu: [arm64] 365 | os: [android] 366 | 367 | '@esbuild/android-arm64@0.25.2': 368 | resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} 369 | engines: {node: '>=18'} 370 | cpu: [arm64] 371 | os: [android] 372 | 373 | '@esbuild/android-arm@0.21.5': 374 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 375 | engines: {node: '>=12'} 376 | cpu: [arm] 377 | os: [android] 378 | 379 | '@esbuild/android-arm@0.24.0': 380 | resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} 381 | engines: {node: '>=18'} 382 | cpu: [arm] 383 | os: [android] 384 | 385 | '@esbuild/android-arm@0.25.2': 386 | resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} 387 | engines: {node: '>=18'} 388 | cpu: [arm] 389 | os: [android] 390 | 391 | '@esbuild/android-x64@0.21.5': 392 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 393 | engines: {node: '>=12'} 394 | cpu: [x64] 395 | os: [android] 396 | 397 | '@esbuild/android-x64@0.24.0': 398 | resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} 399 | engines: {node: '>=18'} 400 | cpu: [x64] 401 | os: [android] 402 | 403 | '@esbuild/android-x64@0.25.2': 404 | resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} 405 | engines: {node: '>=18'} 406 | cpu: [x64] 407 | os: [android] 408 | 409 | '@esbuild/darwin-arm64@0.21.5': 410 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 411 | engines: {node: '>=12'} 412 | cpu: [arm64] 413 | os: [darwin] 414 | 415 | '@esbuild/darwin-arm64@0.24.0': 416 | resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} 417 | engines: {node: '>=18'} 418 | cpu: [arm64] 419 | os: [darwin] 420 | 421 | '@esbuild/darwin-arm64@0.25.2': 422 | resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} 423 | engines: {node: '>=18'} 424 | cpu: [arm64] 425 | os: [darwin] 426 | 427 | '@esbuild/darwin-x64@0.21.5': 428 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 429 | engines: {node: '>=12'} 430 | cpu: [x64] 431 | os: [darwin] 432 | 433 | '@esbuild/darwin-x64@0.24.0': 434 | resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} 435 | engines: {node: '>=18'} 436 | cpu: [x64] 437 | os: [darwin] 438 | 439 | '@esbuild/darwin-x64@0.25.2': 440 | resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} 441 | engines: {node: '>=18'} 442 | cpu: [x64] 443 | os: [darwin] 444 | 445 | '@esbuild/freebsd-arm64@0.21.5': 446 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 447 | engines: {node: '>=12'} 448 | cpu: [arm64] 449 | os: [freebsd] 450 | 451 | '@esbuild/freebsd-arm64@0.24.0': 452 | resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} 453 | engines: {node: '>=18'} 454 | cpu: [arm64] 455 | os: [freebsd] 456 | 457 | '@esbuild/freebsd-arm64@0.25.2': 458 | resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} 459 | engines: {node: '>=18'} 460 | cpu: [arm64] 461 | os: [freebsd] 462 | 463 | '@esbuild/freebsd-x64@0.21.5': 464 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 465 | engines: {node: '>=12'} 466 | cpu: [x64] 467 | os: [freebsd] 468 | 469 | '@esbuild/freebsd-x64@0.24.0': 470 | resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} 471 | engines: {node: '>=18'} 472 | cpu: [x64] 473 | os: [freebsd] 474 | 475 | '@esbuild/freebsd-x64@0.25.2': 476 | resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} 477 | engines: {node: '>=18'} 478 | cpu: [x64] 479 | os: [freebsd] 480 | 481 | '@esbuild/linux-arm64@0.21.5': 482 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 483 | engines: {node: '>=12'} 484 | cpu: [arm64] 485 | os: [linux] 486 | 487 | '@esbuild/linux-arm64@0.24.0': 488 | resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} 489 | engines: {node: '>=18'} 490 | cpu: [arm64] 491 | os: [linux] 492 | 493 | '@esbuild/linux-arm64@0.25.2': 494 | resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} 495 | engines: {node: '>=18'} 496 | cpu: [arm64] 497 | os: [linux] 498 | 499 | '@esbuild/linux-arm@0.21.5': 500 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 501 | engines: {node: '>=12'} 502 | cpu: [arm] 503 | os: [linux] 504 | 505 | '@esbuild/linux-arm@0.24.0': 506 | resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} 507 | engines: {node: '>=18'} 508 | cpu: [arm] 509 | os: [linux] 510 | 511 | '@esbuild/linux-arm@0.25.2': 512 | resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} 513 | engines: {node: '>=18'} 514 | cpu: [arm] 515 | os: [linux] 516 | 517 | '@esbuild/linux-ia32@0.21.5': 518 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 519 | engines: {node: '>=12'} 520 | cpu: [ia32] 521 | os: [linux] 522 | 523 | '@esbuild/linux-ia32@0.24.0': 524 | resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} 525 | engines: {node: '>=18'} 526 | cpu: [ia32] 527 | os: [linux] 528 | 529 | '@esbuild/linux-ia32@0.25.2': 530 | resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} 531 | engines: {node: '>=18'} 532 | cpu: [ia32] 533 | os: [linux] 534 | 535 | '@esbuild/linux-loong64@0.21.5': 536 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 537 | engines: {node: '>=12'} 538 | cpu: [loong64] 539 | os: [linux] 540 | 541 | '@esbuild/linux-loong64@0.24.0': 542 | resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} 543 | engines: {node: '>=18'} 544 | cpu: [loong64] 545 | os: [linux] 546 | 547 | '@esbuild/linux-loong64@0.25.2': 548 | resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} 549 | engines: {node: '>=18'} 550 | cpu: [loong64] 551 | os: [linux] 552 | 553 | '@esbuild/linux-mips64el@0.21.5': 554 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 555 | engines: {node: '>=12'} 556 | cpu: [mips64el] 557 | os: [linux] 558 | 559 | '@esbuild/linux-mips64el@0.24.0': 560 | resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} 561 | engines: {node: '>=18'} 562 | cpu: [mips64el] 563 | os: [linux] 564 | 565 | '@esbuild/linux-mips64el@0.25.2': 566 | resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} 567 | engines: {node: '>=18'} 568 | cpu: [mips64el] 569 | os: [linux] 570 | 571 | '@esbuild/linux-ppc64@0.21.5': 572 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 573 | engines: {node: '>=12'} 574 | cpu: [ppc64] 575 | os: [linux] 576 | 577 | '@esbuild/linux-ppc64@0.24.0': 578 | resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} 579 | engines: {node: '>=18'} 580 | cpu: [ppc64] 581 | os: [linux] 582 | 583 | '@esbuild/linux-ppc64@0.25.2': 584 | resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} 585 | engines: {node: '>=18'} 586 | cpu: [ppc64] 587 | os: [linux] 588 | 589 | '@esbuild/linux-riscv64@0.21.5': 590 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 591 | engines: {node: '>=12'} 592 | cpu: [riscv64] 593 | os: [linux] 594 | 595 | '@esbuild/linux-riscv64@0.24.0': 596 | resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} 597 | engines: {node: '>=18'} 598 | cpu: [riscv64] 599 | os: [linux] 600 | 601 | '@esbuild/linux-riscv64@0.25.2': 602 | resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} 603 | engines: {node: '>=18'} 604 | cpu: [riscv64] 605 | os: [linux] 606 | 607 | '@esbuild/linux-s390x@0.21.5': 608 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 609 | engines: {node: '>=12'} 610 | cpu: [s390x] 611 | os: [linux] 612 | 613 | '@esbuild/linux-s390x@0.24.0': 614 | resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} 615 | engines: {node: '>=18'} 616 | cpu: [s390x] 617 | os: [linux] 618 | 619 | '@esbuild/linux-s390x@0.25.2': 620 | resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} 621 | engines: {node: '>=18'} 622 | cpu: [s390x] 623 | os: [linux] 624 | 625 | '@esbuild/linux-x64@0.21.5': 626 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 627 | engines: {node: '>=12'} 628 | cpu: [x64] 629 | os: [linux] 630 | 631 | '@esbuild/linux-x64@0.24.0': 632 | resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} 633 | engines: {node: '>=18'} 634 | cpu: [x64] 635 | os: [linux] 636 | 637 | '@esbuild/linux-x64@0.25.2': 638 | resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} 639 | engines: {node: '>=18'} 640 | cpu: [x64] 641 | os: [linux] 642 | 643 | '@esbuild/netbsd-arm64@0.25.2': 644 | resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} 645 | engines: {node: '>=18'} 646 | cpu: [arm64] 647 | os: [netbsd] 648 | 649 | '@esbuild/netbsd-x64@0.21.5': 650 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 651 | engines: {node: '>=12'} 652 | cpu: [x64] 653 | os: [netbsd] 654 | 655 | '@esbuild/netbsd-x64@0.24.0': 656 | resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} 657 | engines: {node: '>=18'} 658 | cpu: [x64] 659 | os: [netbsd] 660 | 661 | '@esbuild/netbsd-x64@0.25.2': 662 | resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} 663 | engines: {node: '>=18'} 664 | cpu: [x64] 665 | os: [netbsd] 666 | 667 | '@esbuild/openbsd-arm64@0.24.0': 668 | resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} 669 | engines: {node: '>=18'} 670 | cpu: [arm64] 671 | os: [openbsd] 672 | 673 | '@esbuild/openbsd-arm64@0.25.2': 674 | resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} 675 | engines: {node: '>=18'} 676 | cpu: [arm64] 677 | os: [openbsd] 678 | 679 | '@esbuild/openbsd-x64@0.21.5': 680 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 681 | engines: {node: '>=12'} 682 | cpu: [x64] 683 | os: [openbsd] 684 | 685 | '@esbuild/openbsd-x64@0.24.0': 686 | resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} 687 | engines: {node: '>=18'} 688 | cpu: [x64] 689 | os: [openbsd] 690 | 691 | '@esbuild/openbsd-x64@0.25.2': 692 | resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} 693 | engines: {node: '>=18'} 694 | cpu: [x64] 695 | os: [openbsd] 696 | 697 | '@esbuild/sunos-x64@0.21.5': 698 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 699 | engines: {node: '>=12'} 700 | cpu: [x64] 701 | os: [sunos] 702 | 703 | '@esbuild/sunos-x64@0.24.0': 704 | resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} 705 | engines: {node: '>=18'} 706 | cpu: [x64] 707 | os: [sunos] 708 | 709 | '@esbuild/sunos-x64@0.25.2': 710 | resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} 711 | engines: {node: '>=18'} 712 | cpu: [x64] 713 | os: [sunos] 714 | 715 | '@esbuild/win32-arm64@0.21.5': 716 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 717 | engines: {node: '>=12'} 718 | cpu: [arm64] 719 | os: [win32] 720 | 721 | '@esbuild/win32-arm64@0.24.0': 722 | resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} 723 | engines: {node: '>=18'} 724 | cpu: [arm64] 725 | os: [win32] 726 | 727 | '@esbuild/win32-arm64@0.25.2': 728 | resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} 729 | engines: {node: '>=18'} 730 | cpu: [arm64] 731 | os: [win32] 732 | 733 | '@esbuild/win32-ia32@0.21.5': 734 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 735 | engines: {node: '>=12'} 736 | cpu: [ia32] 737 | os: [win32] 738 | 739 | '@esbuild/win32-ia32@0.24.0': 740 | resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} 741 | engines: {node: '>=18'} 742 | cpu: [ia32] 743 | os: [win32] 744 | 745 | '@esbuild/win32-ia32@0.25.2': 746 | resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} 747 | engines: {node: '>=18'} 748 | cpu: [ia32] 749 | os: [win32] 750 | 751 | '@esbuild/win32-x64@0.21.5': 752 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 753 | engines: {node: '>=12'} 754 | cpu: [x64] 755 | os: [win32] 756 | 757 | '@esbuild/win32-x64@0.24.0': 758 | resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} 759 | engines: {node: '>=18'} 760 | cpu: [x64] 761 | os: [win32] 762 | 763 | '@esbuild/win32-x64@0.25.2': 764 | resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} 765 | engines: {node: '>=18'} 766 | cpu: [x64] 767 | os: [win32] 768 | 769 | '@eslint/js@9.15.0': 770 | resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} 771 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 772 | 773 | '@fastify/busboy@2.1.1': 774 | resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 775 | engines: {node: '>=14'} 776 | 777 | '@floating-ui/core@1.6.8': 778 | resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} 779 | 780 | '@floating-ui/dom@1.6.12': 781 | resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} 782 | 783 | '@floating-ui/react-dom@2.1.2': 784 | resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} 785 | peerDependencies: 786 | react: '>=16.8.0' 787 | react-dom: '>=16.8.0' 788 | 789 | '@floating-ui/utils@0.2.8': 790 | resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} 791 | 792 | '@hono/node-server@1.13.7': 793 | resolution: {integrity: sha512-kTfUMsoloVKtRA2fLiGSd9qBddmru9KadNyhJCwgKBxTiNkaAJEwkVN9KV/rS4HtmmNRtUh6P+YpmjRMl0d9vQ==} 794 | engines: {node: '>=18.14.1'} 795 | peerDependencies: 796 | hono: ^4 797 | 798 | '@hono/swagger-ui@0.4.1': 799 | resolution: {integrity: sha512-kPaJatHffeYQ3yVkHo878hCqwfapqx54FczJVJ+eRWt8J4biyVVMIdCAJb6MyA8bcnHUoTmUpPc7OJAV1VTg2g==} 800 | peerDependencies: 801 | hono: '*' 802 | 803 | '@hono/zod-openapi@0.16.2': 804 | resolution: {integrity: sha512-MxlZzvHTXmOihKgIqYrEH5TysIs3Ep0PlTfmdaXe22HR0o2BULbpWW3F7W4I+2jAbt9rxLbxcs3aE2MXnIuAbw==} 805 | engines: {node: '>=16.0.0'} 806 | peerDependencies: 807 | hono: '>=4.3.6' 808 | zod: 3.* 809 | 810 | '@hono/zod-validator@0.3.0': 811 | resolution: {integrity: sha512-7XcTk3yYyk6ldrO/VuqsroE7stvDZxHJQcpATRAyha8rUxJNBPV3+6waDrARfgEqxOVlzIadm3/6sE/dPseXgQ==} 812 | peerDependencies: 813 | hono: '>=3.9.0' 814 | zod: ^3.19.1 815 | 816 | '@hookform/resolvers@3.9.1': 817 | resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} 818 | peerDependencies: 819 | react-hook-form: ^7.0.0 820 | 821 | '@img/sharp-darwin-arm64@0.33.5': 822 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 823 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 824 | cpu: [arm64] 825 | os: [darwin] 826 | 827 | '@img/sharp-darwin-x64@0.33.5': 828 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 829 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 830 | cpu: [x64] 831 | os: [darwin] 832 | 833 | '@img/sharp-libvips-darwin-arm64@1.0.4': 834 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 835 | cpu: [arm64] 836 | os: [darwin] 837 | 838 | '@img/sharp-libvips-darwin-x64@1.0.4': 839 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 840 | cpu: [x64] 841 | os: [darwin] 842 | 843 | '@img/sharp-libvips-linux-arm64@1.0.4': 844 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 845 | cpu: [arm64] 846 | os: [linux] 847 | 848 | '@img/sharp-libvips-linux-arm@1.0.5': 849 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 850 | cpu: [arm] 851 | os: [linux] 852 | 853 | '@img/sharp-libvips-linux-s390x@1.0.4': 854 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 855 | cpu: [s390x] 856 | os: [linux] 857 | 858 | '@img/sharp-libvips-linux-x64@1.0.4': 859 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 860 | cpu: [x64] 861 | os: [linux] 862 | 863 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 864 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 865 | cpu: [arm64] 866 | os: [linux] 867 | 868 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 869 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 870 | cpu: [x64] 871 | os: [linux] 872 | 873 | '@img/sharp-linux-arm64@0.33.5': 874 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 875 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 876 | cpu: [arm64] 877 | os: [linux] 878 | 879 | '@img/sharp-linux-arm@0.33.5': 880 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 881 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 882 | cpu: [arm] 883 | os: [linux] 884 | 885 | '@img/sharp-linux-s390x@0.33.5': 886 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 887 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 888 | cpu: [s390x] 889 | os: [linux] 890 | 891 | '@img/sharp-linux-x64@0.33.5': 892 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 893 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 894 | cpu: [x64] 895 | os: [linux] 896 | 897 | '@img/sharp-linuxmusl-arm64@0.33.5': 898 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 899 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 900 | cpu: [arm64] 901 | os: [linux] 902 | 903 | '@img/sharp-linuxmusl-x64@0.33.5': 904 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 905 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 906 | cpu: [x64] 907 | os: [linux] 908 | 909 | '@img/sharp-wasm32@0.33.5': 910 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 911 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 912 | cpu: [wasm32] 913 | 914 | '@img/sharp-win32-ia32@0.33.5': 915 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 916 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 917 | cpu: [ia32] 918 | os: [win32] 919 | 920 | '@img/sharp-win32-x64@0.33.5': 921 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 922 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 923 | cpu: [x64] 924 | os: [win32] 925 | 926 | '@isaacs/cliui@8.0.2': 927 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 928 | engines: {node: '>=12'} 929 | 930 | '@jridgewell/gen-mapping@0.3.5': 931 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 932 | engines: {node: '>=6.0.0'} 933 | 934 | '@jridgewell/resolve-uri@3.1.2': 935 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 936 | engines: {node: '>=6.0.0'} 937 | 938 | '@jridgewell/set-array@1.2.1': 939 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 940 | engines: {node: '>=6.0.0'} 941 | 942 | '@jridgewell/sourcemap-codec@1.5.0': 943 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 944 | 945 | '@jridgewell/trace-mapping@0.3.25': 946 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 947 | 948 | '@jridgewell/trace-mapping@0.3.9': 949 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 950 | 951 | '@nodelib/fs.scandir@2.1.5': 952 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 953 | engines: {node: '>= 8'} 954 | 955 | '@nodelib/fs.stat@2.0.5': 956 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 957 | engines: {node: '>= 8'} 958 | 959 | '@nodelib/fs.walk@1.2.8': 960 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 961 | engines: {node: '>= 8'} 962 | 963 | '@pkgjs/parseargs@0.11.0': 964 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 965 | engines: {node: '>=14'} 966 | 967 | '@radix-ui/number@1.1.0': 968 | resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} 969 | 970 | '@radix-ui/primitive@1.1.0': 971 | resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} 972 | 973 | '@radix-ui/react-accordion@1.2.1': 974 | resolution: {integrity: sha512-bg/l7l5QzUjgsh8kjwDFommzAshnUsuVMV5NM56QVCm+7ZckYdd9P/ExR8xG/Oup0OajVxNLaHJ1tb8mXk+nzQ==} 975 | peerDependencies: 976 | '@types/react': '*' 977 | '@types/react-dom': '*' 978 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 979 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 980 | peerDependenciesMeta: 981 | '@types/react': 982 | optional: true 983 | '@types/react-dom': 984 | optional: true 985 | 986 | '@radix-ui/react-arrow@1.1.0': 987 | resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} 988 | peerDependencies: 989 | '@types/react': '*' 990 | '@types/react-dom': '*' 991 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 992 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 993 | peerDependenciesMeta: 994 | '@types/react': 995 | optional: true 996 | '@types/react-dom': 997 | optional: true 998 | 999 | '@radix-ui/react-collapsible@1.1.1': 1000 | resolution: {integrity: sha512-1///SnrfQHJEofLokyczERxQbWfCGQlQ2XsCZMucVs6it+lq9iw4vXy+uDn1edlb58cOZOWSldnfPAYcT4O/Yg==} 1001 | peerDependencies: 1002 | '@types/react': '*' 1003 | '@types/react-dom': '*' 1004 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1005 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1006 | peerDependenciesMeta: 1007 | '@types/react': 1008 | optional: true 1009 | '@types/react-dom': 1010 | optional: true 1011 | 1012 | '@radix-ui/react-collection@1.1.0': 1013 | resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} 1014 | peerDependencies: 1015 | '@types/react': '*' 1016 | '@types/react-dom': '*' 1017 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1018 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1019 | peerDependenciesMeta: 1020 | '@types/react': 1021 | optional: true 1022 | '@types/react-dom': 1023 | optional: true 1024 | 1025 | '@radix-ui/react-compose-refs@1.1.0': 1026 | resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} 1027 | peerDependencies: 1028 | '@types/react': '*' 1029 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1030 | peerDependenciesMeta: 1031 | '@types/react': 1032 | optional: true 1033 | 1034 | '@radix-ui/react-context@1.1.0': 1035 | resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} 1036 | peerDependencies: 1037 | '@types/react': '*' 1038 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1039 | peerDependenciesMeta: 1040 | '@types/react': 1041 | optional: true 1042 | 1043 | '@radix-ui/react-context@1.1.1': 1044 | resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} 1045 | peerDependencies: 1046 | '@types/react': '*' 1047 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1048 | peerDependenciesMeta: 1049 | '@types/react': 1050 | optional: true 1051 | 1052 | '@radix-ui/react-direction@1.1.0': 1053 | resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} 1054 | peerDependencies: 1055 | '@types/react': '*' 1056 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1057 | peerDependenciesMeta: 1058 | '@types/react': 1059 | optional: true 1060 | 1061 | '@radix-ui/react-dismissable-layer@1.1.1': 1062 | resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==} 1063 | peerDependencies: 1064 | '@types/react': '*' 1065 | '@types/react-dom': '*' 1066 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1067 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1068 | peerDependenciesMeta: 1069 | '@types/react': 1070 | optional: true 1071 | '@types/react-dom': 1072 | optional: true 1073 | 1074 | '@radix-ui/react-dropdown-menu@2.1.2': 1075 | resolution: {integrity: sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==} 1076 | peerDependencies: 1077 | '@types/react': '*' 1078 | '@types/react-dom': '*' 1079 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1080 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1081 | peerDependenciesMeta: 1082 | '@types/react': 1083 | optional: true 1084 | '@types/react-dom': 1085 | optional: true 1086 | 1087 | '@radix-ui/react-focus-guards@1.1.1': 1088 | resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} 1089 | peerDependencies: 1090 | '@types/react': '*' 1091 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1092 | peerDependenciesMeta: 1093 | '@types/react': 1094 | optional: true 1095 | 1096 | '@radix-ui/react-focus-scope@1.1.0': 1097 | resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} 1098 | peerDependencies: 1099 | '@types/react': '*' 1100 | '@types/react-dom': '*' 1101 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1102 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1103 | peerDependenciesMeta: 1104 | '@types/react': 1105 | optional: true 1106 | '@types/react-dom': 1107 | optional: true 1108 | 1109 | '@radix-ui/react-id@1.1.0': 1110 | resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} 1111 | peerDependencies: 1112 | '@types/react': '*' 1113 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1114 | peerDependenciesMeta: 1115 | '@types/react': 1116 | optional: true 1117 | 1118 | '@radix-ui/react-label@2.1.0': 1119 | resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} 1120 | peerDependencies: 1121 | '@types/react': '*' 1122 | '@types/react-dom': '*' 1123 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1124 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1125 | peerDependenciesMeta: 1126 | '@types/react': 1127 | optional: true 1128 | '@types/react-dom': 1129 | optional: true 1130 | 1131 | '@radix-ui/react-menu@2.1.2': 1132 | resolution: {integrity: sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==} 1133 | peerDependencies: 1134 | '@types/react': '*' 1135 | '@types/react-dom': '*' 1136 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1137 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1138 | peerDependenciesMeta: 1139 | '@types/react': 1140 | optional: true 1141 | '@types/react-dom': 1142 | optional: true 1143 | 1144 | '@radix-ui/react-popper@1.2.0': 1145 | resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} 1146 | peerDependencies: 1147 | '@types/react': '*' 1148 | '@types/react-dom': '*' 1149 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1150 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1151 | peerDependenciesMeta: 1152 | '@types/react': 1153 | optional: true 1154 | '@types/react-dom': 1155 | optional: true 1156 | 1157 | '@radix-ui/react-portal@1.1.2': 1158 | resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==} 1159 | peerDependencies: 1160 | '@types/react': '*' 1161 | '@types/react-dom': '*' 1162 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1163 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1164 | peerDependenciesMeta: 1165 | '@types/react': 1166 | optional: true 1167 | '@types/react-dom': 1168 | optional: true 1169 | 1170 | '@radix-ui/react-presence@1.1.1': 1171 | resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==} 1172 | peerDependencies: 1173 | '@types/react': '*' 1174 | '@types/react-dom': '*' 1175 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1176 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1177 | peerDependenciesMeta: 1178 | '@types/react': 1179 | optional: true 1180 | '@types/react-dom': 1181 | optional: true 1182 | 1183 | '@radix-ui/react-primitive@2.0.0': 1184 | resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} 1185 | peerDependencies: 1186 | '@types/react': '*' 1187 | '@types/react-dom': '*' 1188 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1189 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1190 | peerDependenciesMeta: 1191 | '@types/react': 1192 | optional: true 1193 | '@types/react-dom': 1194 | optional: true 1195 | 1196 | '@radix-ui/react-roving-focus@1.1.0': 1197 | resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} 1198 | peerDependencies: 1199 | '@types/react': '*' 1200 | '@types/react-dom': '*' 1201 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1202 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1203 | peerDependenciesMeta: 1204 | '@types/react': 1205 | optional: true 1206 | '@types/react-dom': 1207 | optional: true 1208 | 1209 | '@radix-ui/react-select@2.1.2': 1210 | resolution: {integrity: sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==} 1211 | peerDependencies: 1212 | '@types/react': '*' 1213 | '@types/react-dom': '*' 1214 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1215 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1216 | peerDependenciesMeta: 1217 | '@types/react': 1218 | optional: true 1219 | '@types/react-dom': 1220 | optional: true 1221 | 1222 | '@radix-ui/react-slot@1.1.0': 1223 | resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} 1224 | peerDependencies: 1225 | '@types/react': '*' 1226 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1227 | peerDependenciesMeta: 1228 | '@types/react': 1229 | optional: true 1230 | 1231 | '@radix-ui/react-toast@1.2.2': 1232 | resolution: {integrity: sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==} 1233 | peerDependencies: 1234 | '@types/react': '*' 1235 | '@types/react-dom': '*' 1236 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1237 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1238 | peerDependenciesMeta: 1239 | '@types/react': 1240 | optional: true 1241 | '@types/react-dom': 1242 | optional: true 1243 | 1244 | '@radix-ui/react-use-callback-ref@1.1.0': 1245 | resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} 1246 | peerDependencies: 1247 | '@types/react': '*' 1248 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1249 | peerDependenciesMeta: 1250 | '@types/react': 1251 | optional: true 1252 | 1253 | '@radix-ui/react-use-controllable-state@1.1.0': 1254 | resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} 1255 | peerDependencies: 1256 | '@types/react': '*' 1257 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1258 | peerDependenciesMeta: 1259 | '@types/react': 1260 | optional: true 1261 | 1262 | '@radix-ui/react-use-escape-keydown@1.1.0': 1263 | resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} 1264 | peerDependencies: 1265 | '@types/react': '*' 1266 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1267 | peerDependenciesMeta: 1268 | '@types/react': 1269 | optional: true 1270 | 1271 | '@radix-ui/react-use-layout-effect@1.1.0': 1272 | resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} 1273 | peerDependencies: 1274 | '@types/react': '*' 1275 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1276 | peerDependenciesMeta: 1277 | '@types/react': 1278 | optional: true 1279 | 1280 | '@radix-ui/react-use-previous@1.1.0': 1281 | resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} 1282 | peerDependencies: 1283 | '@types/react': '*' 1284 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1285 | peerDependenciesMeta: 1286 | '@types/react': 1287 | optional: true 1288 | 1289 | '@radix-ui/react-use-rect@1.1.0': 1290 | resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} 1291 | peerDependencies: 1292 | '@types/react': '*' 1293 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1294 | peerDependenciesMeta: 1295 | '@types/react': 1296 | optional: true 1297 | 1298 | '@radix-ui/react-use-size@1.1.0': 1299 | resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} 1300 | peerDependencies: 1301 | '@types/react': '*' 1302 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1303 | peerDependenciesMeta: 1304 | '@types/react': 1305 | optional: true 1306 | 1307 | '@radix-ui/react-visually-hidden@1.1.0': 1308 | resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} 1309 | peerDependencies: 1310 | '@types/react': '*' 1311 | '@types/react-dom': '*' 1312 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1313 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 1314 | peerDependenciesMeta: 1315 | '@types/react': 1316 | optional: true 1317 | '@types/react-dom': 1318 | optional: true 1319 | 1320 | '@radix-ui/rect@1.1.0': 1321 | resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} 1322 | 1323 | '@rollup/rollup-android-arm-eabi@4.27.3': 1324 | resolution: {integrity: sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==} 1325 | cpu: [arm] 1326 | os: [android] 1327 | 1328 | '@rollup/rollup-android-arm64@4.27.3': 1329 | resolution: {integrity: sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==} 1330 | cpu: [arm64] 1331 | os: [android] 1332 | 1333 | '@rollup/rollup-darwin-arm64@4.27.3': 1334 | resolution: {integrity: sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==} 1335 | cpu: [arm64] 1336 | os: [darwin] 1337 | 1338 | '@rollup/rollup-darwin-x64@4.27.3': 1339 | resolution: {integrity: sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==} 1340 | cpu: [x64] 1341 | os: [darwin] 1342 | 1343 | '@rollup/rollup-freebsd-arm64@4.27.3': 1344 | resolution: {integrity: sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==} 1345 | cpu: [arm64] 1346 | os: [freebsd] 1347 | 1348 | '@rollup/rollup-freebsd-x64@4.27.3': 1349 | resolution: {integrity: sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==} 1350 | cpu: [x64] 1351 | os: [freebsd] 1352 | 1353 | '@rollup/rollup-linux-arm-gnueabihf@4.27.3': 1354 | resolution: {integrity: sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==} 1355 | cpu: [arm] 1356 | os: [linux] 1357 | 1358 | '@rollup/rollup-linux-arm-musleabihf@4.27.3': 1359 | resolution: {integrity: sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==} 1360 | cpu: [arm] 1361 | os: [linux] 1362 | 1363 | '@rollup/rollup-linux-arm64-gnu@4.27.3': 1364 | resolution: {integrity: sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==} 1365 | cpu: [arm64] 1366 | os: [linux] 1367 | 1368 | '@rollup/rollup-linux-arm64-musl@4.27.3': 1369 | resolution: {integrity: sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==} 1370 | cpu: [arm64] 1371 | os: [linux] 1372 | 1373 | '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': 1374 | resolution: {integrity: sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==} 1375 | cpu: [ppc64] 1376 | os: [linux] 1377 | 1378 | '@rollup/rollup-linux-riscv64-gnu@4.27.3': 1379 | resolution: {integrity: sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==} 1380 | cpu: [riscv64] 1381 | os: [linux] 1382 | 1383 | '@rollup/rollup-linux-s390x-gnu@4.27.3': 1384 | resolution: {integrity: sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==} 1385 | cpu: [s390x] 1386 | os: [linux] 1387 | 1388 | '@rollup/rollup-linux-x64-gnu@4.27.3': 1389 | resolution: {integrity: sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==} 1390 | cpu: [x64] 1391 | os: [linux] 1392 | 1393 | '@rollup/rollup-linux-x64-musl@4.27.3': 1394 | resolution: {integrity: sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==} 1395 | cpu: [x64] 1396 | os: [linux] 1397 | 1398 | '@rollup/rollup-win32-arm64-msvc@4.27.3': 1399 | resolution: {integrity: sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==} 1400 | cpu: [arm64] 1401 | os: [win32] 1402 | 1403 | '@rollup/rollup-win32-ia32-msvc@4.27.3': 1404 | resolution: {integrity: sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==} 1405 | cpu: [ia32] 1406 | os: [win32] 1407 | 1408 | '@rollup/rollup-win32-x64-msvc@4.27.3': 1409 | resolution: {integrity: sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==} 1410 | cpu: [x64] 1411 | os: [win32] 1412 | 1413 | '@types/babel__core@7.20.5': 1414 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 1415 | 1416 | '@types/babel__generator@7.6.8': 1417 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 1418 | 1419 | '@types/babel__template@7.4.4': 1420 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 1421 | 1422 | '@types/babel__traverse@7.20.6': 1423 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 1424 | 1425 | '@types/estree@1.0.6': 1426 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 1427 | 1428 | '@types/node@20.8.3': 1429 | resolution: {integrity: sha512-jxiZQFpb+NlH5kjW49vXxvxTjeeqlbsnTAdBTKpzEdPs9itay7MscYXz3Fo9VYFEsfQ6LJFitHad3faerLAjCw==} 1430 | 1431 | '@types/prop-types@15.7.13': 1432 | resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} 1433 | 1434 | '@types/react-dom@18.3.1': 1435 | resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} 1436 | 1437 | '@types/react@18.3.12': 1438 | resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} 1439 | 1440 | '@types/unist@3.0.3': 1441 | resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 1442 | 1443 | '@types/xast@2.0.4': 1444 | resolution: {integrity: sha512-6Q6HWhHXR5EEKcxgF5YBW5XPAAtCi/GgyCWHx6wR7dZTXF5rv2B2fm0hgpSscJqaVDVm6n1DAVbsM8RSM5PlMw==} 1445 | 1446 | '@vitejs/plugin-react@4.3.3': 1447 | resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} 1448 | engines: {node: ^14.18.0 || >=16.0.0} 1449 | peerDependencies: 1450 | vite: ^4.2.0 || ^5.0.0 1451 | 1452 | acorn-walk@8.3.2: 1453 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 1454 | engines: {node: '>=0.4.0'} 1455 | 1456 | acorn@8.14.0: 1457 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 1458 | engines: {node: '>=0.4.0'} 1459 | hasBin: true 1460 | 1461 | ansi-regex@5.0.1: 1462 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1463 | engines: {node: '>=8'} 1464 | 1465 | ansi-regex@6.1.0: 1466 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 1467 | engines: {node: '>=12'} 1468 | 1469 | ansi-styles@4.3.0: 1470 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1471 | engines: {node: '>=8'} 1472 | 1473 | ansi-styles@6.2.1: 1474 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1475 | engines: {node: '>=12'} 1476 | 1477 | any-promise@1.3.0: 1478 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 1479 | 1480 | anymatch@3.1.3: 1481 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1482 | engines: {node: '>= 8'} 1483 | 1484 | arg@5.0.2: 1485 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 1486 | 1487 | aria-hidden@1.2.4: 1488 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 1489 | engines: {node: '>=10'} 1490 | 1491 | as-table@1.0.55: 1492 | resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 1493 | 1494 | autoprefixer@10.4.20: 1495 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} 1496 | engines: {node: ^10 || ^12 || >=14} 1497 | hasBin: true 1498 | peerDependencies: 1499 | postcss: ^8.1.0 1500 | 1501 | balanced-match@1.0.2: 1502 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1503 | 1504 | binary-extensions@2.3.0: 1505 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1506 | engines: {node: '>=8'} 1507 | 1508 | blake3-wasm@2.1.5: 1509 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 1510 | 1511 | brace-expansion@2.0.1: 1512 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1513 | 1514 | braces@3.0.3: 1515 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 1516 | engines: {node: '>=8'} 1517 | 1518 | browserslist@4.24.2: 1519 | resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} 1520 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1521 | hasBin: true 1522 | 1523 | bundle-require@5.0.0: 1524 | resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} 1525 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1526 | peerDependencies: 1527 | esbuild: '>=0.18' 1528 | 1529 | cac@6.7.14: 1530 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1531 | engines: {node: '>=8'} 1532 | 1533 | camelcase-css@2.0.1: 1534 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1535 | engines: {node: '>= 6'} 1536 | 1537 | caniuse-lite@1.0.30001683: 1538 | resolution: {integrity: sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==} 1539 | 1540 | ccount@2.0.1: 1541 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 1542 | 1543 | character-entities-html4@2.1.0: 1544 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 1545 | 1546 | character-entities-legacy@3.0.0: 1547 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 1548 | 1549 | chokidar@3.6.0: 1550 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1551 | engines: {node: '>= 8.10.0'} 1552 | 1553 | chokidar@4.0.1: 1554 | resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} 1555 | engines: {node: '>= 14.16.0'} 1556 | 1557 | class-variance-authority@0.7.0: 1558 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 1559 | 1560 | clsx@2.0.0: 1561 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 1562 | engines: {node: '>=6'} 1563 | 1564 | clsx@2.1.1: 1565 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 1566 | engines: {node: '>=6'} 1567 | 1568 | color-convert@2.0.1: 1569 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1570 | engines: {node: '>=7.0.0'} 1571 | 1572 | color-name@1.1.4: 1573 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1574 | 1575 | color-string@1.9.1: 1576 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 1577 | 1578 | color@4.2.3: 1579 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 1580 | engines: {node: '>=12.5.0'} 1581 | 1582 | commander@4.1.1: 1583 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1584 | engines: {node: '>= 6'} 1585 | 1586 | consola@3.2.3: 1587 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 1588 | engines: {node: ^14.18.0 || >=16.10.0} 1589 | 1590 | convert-source-map@2.0.0: 1591 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1592 | 1593 | cookie@0.7.2: 1594 | resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} 1595 | engines: {node: '>= 0.6'} 1596 | 1597 | cross-spawn@7.0.6: 1598 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1599 | engines: {node: '>= 8'} 1600 | 1601 | cssesc@3.0.0: 1602 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1603 | engines: {node: '>=4'} 1604 | hasBin: true 1605 | 1606 | csstype@3.1.3: 1607 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1608 | 1609 | data-uri-to-buffer@2.0.2: 1610 | resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 1611 | 1612 | debug@4.3.7: 1613 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} 1614 | engines: {node: '>=6.0'} 1615 | peerDependencies: 1616 | supports-color: '*' 1617 | peerDependenciesMeta: 1618 | supports-color: 1619 | optional: true 1620 | 1621 | defu@6.1.4: 1622 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1623 | 1624 | detect-libc@2.0.4: 1625 | resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} 1626 | engines: {node: '>=8'} 1627 | 1628 | detect-node-es@1.1.0: 1629 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 1630 | 1631 | didyoumean@1.2.2: 1632 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1633 | 1634 | dlv@1.1.3: 1635 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1636 | 1637 | eastasianwidth@0.2.0: 1638 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1639 | 1640 | electron-to-chromium@1.5.64: 1641 | resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==} 1642 | 1643 | emoji-regex@8.0.0: 1644 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1645 | 1646 | emoji-regex@9.2.2: 1647 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1648 | 1649 | esbuild@0.21.5: 1650 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 1651 | engines: {node: '>=12'} 1652 | hasBin: true 1653 | 1654 | esbuild@0.24.0: 1655 | resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} 1656 | engines: {node: '>=18'} 1657 | hasBin: true 1658 | 1659 | esbuild@0.25.2: 1660 | resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} 1661 | engines: {node: '>=18'} 1662 | hasBin: true 1663 | 1664 | escalade@3.2.0: 1665 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1666 | engines: {node: '>=6'} 1667 | 1668 | exit-hook@2.2.1: 1669 | resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 1670 | engines: {node: '>=6'} 1671 | 1672 | exsolve@1.0.5: 1673 | resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} 1674 | 1675 | fast-glob@3.3.2: 1676 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1677 | engines: {node: '>=8.6.0'} 1678 | 1679 | fastq@1.17.1: 1680 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1681 | 1682 | fdir@6.4.2: 1683 | resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} 1684 | peerDependencies: 1685 | picomatch: ^3 || ^4 1686 | peerDependenciesMeta: 1687 | picomatch: 1688 | optional: true 1689 | 1690 | fill-range@7.1.1: 1691 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1692 | engines: {node: '>=8'} 1693 | 1694 | foreground-child@3.3.0: 1695 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1696 | engines: {node: '>=14'} 1697 | 1698 | fraction.js@4.3.7: 1699 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 1700 | 1701 | fsevents@2.3.3: 1702 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1703 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1704 | os: [darwin] 1705 | 1706 | function-bind@1.1.2: 1707 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1708 | 1709 | gensync@1.0.0-beta.2: 1710 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1711 | engines: {node: '>=6.9.0'} 1712 | 1713 | get-nonce@1.0.1: 1714 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 1715 | engines: {node: '>=6'} 1716 | 1717 | get-source@2.0.12: 1718 | resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 1719 | 1720 | glob-parent@5.1.2: 1721 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1722 | engines: {node: '>= 6'} 1723 | 1724 | glob-parent@6.0.2: 1725 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1726 | engines: {node: '>=10.13.0'} 1727 | 1728 | glob-to-regexp@0.4.1: 1729 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1730 | 1731 | glob@10.4.5: 1732 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1733 | hasBin: true 1734 | 1735 | globals@11.12.0: 1736 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1737 | engines: {node: '>=4'} 1738 | 1739 | globals@15.12.0: 1740 | resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} 1741 | engines: {node: '>=18'} 1742 | 1743 | hasown@2.0.2: 1744 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1745 | engines: {node: '>= 0.4'} 1746 | 1747 | hono@4.6.3: 1748 | resolution: {integrity: sha512-0LeEuBNFeSHGqZ9sNVVgZjB1V5fmhkBSB0hZrpqStSMLOWgfLy0dHOvrjbJh0H2khsjet6rbHfWTHY0kpYThKQ==} 1749 | engines: {node: '>=16.9.0'} 1750 | 1751 | invariant@2.2.4: 1752 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 1753 | 1754 | is-arrayish@0.3.2: 1755 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1756 | 1757 | is-binary-path@2.1.0: 1758 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1759 | engines: {node: '>=8'} 1760 | 1761 | is-core-module@2.15.1: 1762 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 1763 | engines: {node: '>= 0.4'} 1764 | 1765 | is-extglob@2.1.1: 1766 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1767 | engines: {node: '>=0.10.0'} 1768 | 1769 | is-fullwidth-code-point@3.0.0: 1770 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1771 | engines: {node: '>=8'} 1772 | 1773 | is-glob@4.0.3: 1774 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1775 | engines: {node: '>=0.10.0'} 1776 | 1777 | is-number@7.0.0: 1778 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1779 | engines: {node: '>=0.12.0'} 1780 | 1781 | isexe@2.0.0: 1782 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1783 | 1784 | jackspeak@3.4.3: 1785 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1786 | 1787 | jiti@1.21.6: 1788 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 1789 | hasBin: true 1790 | 1791 | jiti@2.4.2: 1792 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 1793 | hasBin: true 1794 | 1795 | joycon@3.1.1: 1796 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1797 | engines: {node: '>=10'} 1798 | 1799 | js-tokens@4.0.0: 1800 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1801 | 1802 | jsesc@3.0.2: 1803 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 1804 | engines: {node: '>=6'} 1805 | hasBin: true 1806 | 1807 | json5@2.2.3: 1808 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1809 | engines: {node: '>=6'} 1810 | hasBin: true 1811 | 1812 | lilconfig@2.1.0: 1813 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1814 | engines: {node: '>=10'} 1815 | 1816 | lilconfig@3.1.2: 1817 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 1818 | engines: {node: '>=14'} 1819 | 1820 | lines-and-columns@1.2.4: 1821 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1822 | 1823 | load-tsconfig@0.2.5: 1824 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1825 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1826 | 1827 | lodash.sortby@4.7.0: 1828 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1829 | 1830 | loose-envify@1.4.0: 1831 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1832 | hasBin: true 1833 | 1834 | lru-cache@10.4.3: 1835 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1836 | 1837 | lru-cache@5.1.1: 1838 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1839 | 1840 | lucide-react@0.460.0: 1841 | resolution: {integrity: sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg==} 1842 | peerDependencies: 1843 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc 1844 | 1845 | merge2@1.4.1: 1846 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1847 | engines: {node: '>= 8'} 1848 | 1849 | micromatch@4.0.8: 1850 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1851 | engines: {node: '>=8.6'} 1852 | 1853 | mime@3.0.0: 1854 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1855 | engines: {node: '>=10.0.0'} 1856 | hasBin: true 1857 | 1858 | miniflare@4.20250428.1: 1859 | resolution: {integrity: sha512-M3qcJXjeAEimHrEeWXEhrJiC3YHB5M3QSqqK67pOTI+lHn0QyVG/2iFUjVJ/nv+i10uxeAEva8GRGeu+tKRCmQ==} 1860 | engines: {node: '>=18.0.0'} 1861 | hasBin: true 1862 | 1863 | minimatch@9.0.5: 1864 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1865 | engines: {node: '>=16 || 14 >=14.17'} 1866 | 1867 | minipass@7.1.2: 1868 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1869 | engines: {node: '>=16 || 14 >=14.17'} 1870 | 1871 | ms@2.1.3: 1872 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1873 | 1874 | mustache@4.2.0: 1875 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 1876 | hasBin: true 1877 | 1878 | mz@2.7.0: 1879 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1880 | 1881 | nanoid@3.3.11: 1882 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1883 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1884 | hasBin: true 1885 | 1886 | nanoid@3.3.7: 1887 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1888 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1889 | hasBin: true 1890 | 1891 | node-releases@2.0.18: 1892 | resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} 1893 | 1894 | normalize-path@3.0.0: 1895 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1896 | engines: {node: '>=0.10.0'} 1897 | 1898 | normalize-range@0.1.2: 1899 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1900 | engines: {node: '>=0.10.0'} 1901 | 1902 | object-assign@4.1.1: 1903 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1904 | engines: {node: '>=0.10.0'} 1905 | 1906 | object-hash@3.0.0: 1907 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1908 | engines: {node: '>= 6'} 1909 | 1910 | ohash@2.0.11: 1911 | resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1912 | 1913 | openapi3-ts@4.4.0: 1914 | resolution: {integrity: sha512-9asTNB9IkKEzWMcHmVZE7Ts3kC9G7AFHfs8i7caD8HbI76gEjdkId4z/AkP83xdZsH7PLAnnbl47qZkXuxpArw==} 1915 | 1916 | package-json-from-dist@1.0.1: 1917 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1918 | 1919 | path-key@3.1.1: 1920 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1921 | engines: {node: '>=8'} 1922 | 1923 | path-parse@1.0.7: 1924 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1925 | 1926 | path-scurry@1.11.1: 1927 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1928 | engines: {node: '>=16 || 14 >=14.18'} 1929 | 1930 | path-to-regexp@6.3.0: 1931 | resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} 1932 | 1933 | pathe@2.0.3: 1934 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1935 | 1936 | picocolors@1.1.1: 1937 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1938 | 1939 | picomatch@2.3.1: 1940 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1941 | engines: {node: '>=8.6'} 1942 | 1943 | picomatch@4.0.2: 1944 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1945 | engines: {node: '>=12'} 1946 | 1947 | pify@2.3.0: 1948 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1949 | engines: {node: '>=0.10.0'} 1950 | 1951 | pirates@4.0.6: 1952 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1953 | engines: {node: '>= 6'} 1954 | 1955 | postcss-import@15.1.0: 1956 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1957 | engines: {node: '>=14.0.0'} 1958 | peerDependencies: 1959 | postcss: ^8.0.0 1960 | 1961 | postcss-js@4.0.1: 1962 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1963 | engines: {node: ^12 || ^14 || >= 16} 1964 | peerDependencies: 1965 | postcss: ^8.4.21 1966 | 1967 | postcss-load-config@4.0.2: 1968 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1969 | engines: {node: '>= 14'} 1970 | peerDependencies: 1971 | postcss: '>=8.0.9' 1972 | ts-node: '>=9.0.0' 1973 | peerDependenciesMeta: 1974 | postcss: 1975 | optional: true 1976 | ts-node: 1977 | optional: true 1978 | 1979 | postcss-load-config@6.0.1: 1980 | resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 1981 | engines: {node: '>= 18'} 1982 | peerDependencies: 1983 | jiti: '>=1.21.0' 1984 | postcss: '>=8.0.9' 1985 | tsx: ^4.8.1 1986 | yaml: ^2.4.2 1987 | peerDependenciesMeta: 1988 | jiti: 1989 | optional: true 1990 | postcss: 1991 | optional: true 1992 | tsx: 1993 | optional: true 1994 | yaml: 1995 | optional: true 1996 | 1997 | postcss-nested@6.2.0: 1998 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 1999 | engines: {node: '>=12.0'} 2000 | peerDependencies: 2001 | postcss: ^8.2.14 2002 | 2003 | postcss-selector-parser@6.1.2: 2004 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 2005 | engines: {node: '>=4'} 2006 | 2007 | postcss-value-parser@4.2.0: 2008 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2009 | 2010 | postcss@8.4.49: 2011 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 2012 | engines: {node: ^10 || ^12 || >=14} 2013 | 2014 | postcss@8.5.3: 2015 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 2016 | engines: {node: ^10 || ^12 || >=14} 2017 | 2018 | printable-characters@1.0.42: 2019 | resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 2020 | 2021 | punycode@2.3.1: 2022 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2023 | engines: {node: '>=6'} 2024 | 2025 | queue-microtask@1.2.3: 2026 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2027 | 2028 | react-dom@18.3.1: 2029 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 2030 | peerDependencies: 2031 | react: ^18.3.1 2032 | 2033 | react-hook-form@7.53.2: 2034 | resolution: {integrity: sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==} 2035 | engines: {node: '>=18.0.0'} 2036 | peerDependencies: 2037 | react: ^16.8.0 || ^17 || ^18 || ^19 2038 | 2039 | react-refresh@0.14.2: 2040 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 2041 | engines: {node: '>=0.10.0'} 2042 | 2043 | react-remove-scroll-bar@2.3.6: 2044 | resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} 2045 | engines: {node: '>=10'} 2046 | peerDependencies: 2047 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2048 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2049 | peerDependenciesMeta: 2050 | '@types/react': 2051 | optional: true 2052 | 2053 | react-remove-scroll@2.6.0: 2054 | resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} 2055 | engines: {node: '>=10'} 2056 | peerDependencies: 2057 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2058 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2059 | peerDependenciesMeta: 2060 | '@types/react': 2061 | optional: true 2062 | 2063 | react-style-singleton@2.2.1: 2064 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 2065 | engines: {node: '>=10'} 2066 | peerDependencies: 2067 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2068 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2069 | peerDependenciesMeta: 2070 | '@types/react': 2071 | optional: true 2072 | 2073 | react@18.3.1: 2074 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 2075 | engines: {node: '>=0.10.0'} 2076 | 2077 | read-cache@1.0.0: 2078 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 2079 | 2080 | readdirp@3.6.0: 2081 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2082 | engines: {node: '>=8.10.0'} 2083 | 2084 | readdirp@4.0.2: 2085 | resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 2086 | engines: {node: '>= 14.16.0'} 2087 | 2088 | resolve-from@5.0.0: 2089 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2090 | engines: {node: '>=8'} 2091 | 2092 | resolve@1.22.8: 2093 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2094 | hasBin: true 2095 | 2096 | reusify@1.0.4: 2097 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2098 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2099 | 2100 | rollup@4.27.3: 2101 | resolution: {integrity: sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==} 2102 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2103 | hasBin: true 2104 | 2105 | run-parallel@1.2.0: 2106 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2107 | 2108 | scheduler@0.23.2: 2109 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 2110 | 2111 | semver@6.3.1: 2112 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2113 | hasBin: true 2114 | 2115 | semver@7.7.1: 2116 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 2117 | engines: {node: '>=10'} 2118 | hasBin: true 2119 | 2120 | sharp@0.33.5: 2121 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 2122 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 2123 | 2124 | shebang-command@2.0.0: 2125 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2126 | engines: {node: '>=8'} 2127 | 2128 | shebang-regex@3.0.0: 2129 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2130 | engines: {node: '>=8'} 2131 | 2132 | signal-exit@4.1.0: 2133 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 2134 | engines: {node: '>=14'} 2135 | 2136 | simple-swizzle@0.2.2: 2137 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 2138 | 2139 | source-map-js@1.2.1: 2140 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2141 | engines: {node: '>=0.10.0'} 2142 | 2143 | source-map@0.6.1: 2144 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2145 | engines: {node: '>=0.10.0'} 2146 | 2147 | source-map@0.8.0-beta.0: 2148 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 2149 | engines: {node: '>= 8'} 2150 | 2151 | stacktracey@2.1.8: 2152 | resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 2153 | 2154 | stoppable@1.1.0: 2155 | resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 2156 | engines: {node: '>=4', npm: '>=6'} 2157 | 2158 | string-width@4.2.3: 2159 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2160 | engines: {node: '>=8'} 2161 | 2162 | string-width@5.1.2: 2163 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2164 | engines: {node: '>=12'} 2165 | 2166 | stringify-entities@4.0.4: 2167 | resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 2168 | 2169 | strip-ansi@6.0.1: 2170 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2171 | engines: {node: '>=8'} 2172 | 2173 | strip-ansi@7.1.0: 2174 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2175 | engines: {node: '>=12'} 2176 | 2177 | sucrase@3.35.0: 2178 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 2179 | engines: {node: '>=16 || 14 >=14.17'} 2180 | hasBin: true 2181 | 2182 | supports-preserve-symlinks-flag@1.0.0: 2183 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2184 | engines: {node: '>= 0.4'} 2185 | 2186 | tailwind-merge@2.5.4: 2187 | resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==} 2188 | 2189 | tailwindcss-animate@1.0.7: 2190 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 2191 | peerDependencies: 2192 | tailwindcss: '>=3.0.0 || insiders' 2193 | 2194 | tailwindcss@3.4.15: 2195 | resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==} 2196 | engines: {node: '>=14.0.0'} 2197 | hasBin: true 2198 | 2199 | thenify-all@1.6.0: 2200 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2201 | engines: {node: '>=0.8'} 2202 | 2203 | thenify@3.3.1: 2204 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2205 | 2206 | tinyexec@0.3.1: 2207 | resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} 2208 | 2209 | tinyglobby@0.2.10: 2210 | resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} 2211 | engines: {node: '>=12.0.0'} 2212 | 2213 | to-regex-range@5.0.1: 2214 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2215 | engines: {node: '>=8.0'} 2216 | 2217 | tr46@1.0.1: 2218 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 2219 | 2220 | tree-kill@1.2.2: 2221 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 2222 | hasBin: true 2223 | 2224 | ts-interface-checker@0.1.13: 2225 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2226 | 2227 | tslib@2.7.0: 2228 | resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} 2229 | 2230 | tslib@2.8.1: 2231 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2232 | 2233 | tsup@8.3.5: 2234 | resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} 2235 | engines: {node: '>=18'} 2236 | hasBin: true 2237 | peerDependencies: 2238 | '@microsoft/api-extractor': ^7.36.0 2239 | '@swc/core': ^1 2240 | postcss: ^8.4.12 2241 | typescript: '>=4.5.0' 2242 | peerDependenciesMeta: 2243 | '@microsoft/api-extractor': 2244 | optional: true 2245 | '@swc/core': 2246 | optional: true 2247 | postcss: 2248 | optional: true 2249 | typescript: 2250 | optional: true 2251 | 2252 | typescript@5.6.3: 2253 | resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} 2254 | engines: {node: '>=14.17'} 2255 | hasBin: true 2256 | 2257 | ufo@1.5.4: 2258 | resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} 2259 | 2260 | undici@5.29.0: 2261 | resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} 2262 | engines: {node: '>=14.0'} 2263 | 2264 | unenv@2.0.0-rc.15: 2265 | resolution: {integrity: sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==} 2266 | 2267 | update-browserslist-db@1.1.1: 2268 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} 2269 | hasBin: true 2270 | peerDependencies: 2271 | browserslist: '>= 4.21.0' 2272 | 2273 | use-callback-ref@1.3.2: 2274 | resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} 2275 | engines: {node: '>=10'} 2276 | peerDependencies: 2277 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2278 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2279 | peerDependenciesMeta: 2280 | '@types/react': 2281 | optional: true 2282 | 2283 | use-sidecar@1.1.2: 2284 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 2285 | engines: {node: '>=10'} 2286 | peerDependencies: 2287 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 2288 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2289 | peerDependenciesMeta: 2290 | '@types/react': 2291 | optional: true 2292 | 2293 | util-deprecate@1.0.2: 2294 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2295 | 2296 | vite@5.4.11: 2297 | resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} 2298 | engines: {node: ^18.0.0 || >=20.0.0} 2299 | hasBin: true 2300 | peerDependencies: 2301 | '@types/node': ^18.0.0 || >=20.0.0 2302 | less: '*' 2303 | lightningcss: ^1.21.0 2304 | sass: '*' 2305 | sass-embedded: '*' 2306 | stylus: '*' 2307 | sugarss: '*' 2308 | terser: ^5.4.0 2309 | peerDependenciesMeta: 2310 | '@types/node': 2311 | optional: true 2312 | less: 2313 | optional: true 2314 | lightningcss: 2315 | optional: true 2316 | sass: 2317 | optional: true 2318 | sass-embedded: 2319 | optional: true 2320 | stylus: 2321 | optional: true 2322 | sugarss: 2323 | optional: true 2324 | terser: 2325 | optional: true 2326 | 2327 | webidl-conversions@4.0.2: 2328 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 2329 | 2330 | whatwg-url@7.1.0: 2331 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 2332 | 2333 | which@2.0.2: 2334 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2335 | engines: {node: '>= 8'} 2336 | hasBin: true 2337 | 2338 | workerd@1.20250428.0: 2339 | resolution: {integrity: sha512-JJNWkHkwPQKQdvtM9UORijgYdcdJsihA4SfYjwh02IUQsdMyZ9jizV1sX9yWi9B9ptlohTW8UNHJEATuphGgdg==} 2340 | engines: {node: '>=16'} 2341 | hasBin: true 2342 | 2343 | wrangler@4.14.1: 2344 | resolution: {integrity: sha512-EU7IThP7i68TBftJJSveogvWZ5k/WRijcJh3UclDWiWWhDZTPbL6LOJEFhHKqFzHOaC4Y2Aewt48rfTz0e7oCw==} 2345 | engines: {node: '>=18.0.0'} 2346 | hasBin: true 2347 | peerDependencies: 2348 | '@cloudflare/workers-types': ^4.20250428.0 2349 | peerDependenciesMeta: 2350 | '@cloudflare/workers-types': 2351 | optional: true 2352 | 2353 | wrap-ansi@7.0.0: 2354 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2355 | engines: {node: '>=10'} 2356 | 2357 | wrap-ansi@8.1.0: 2358 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2359 | engines: {node: '>=12'} 2360 | 2361 | ws@8.18.0: 2362 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 2363 | engines: {node: '>=10.0.0'} 2364 | peerDependencies: 2365 | bufferutil: ^4.0.1 2366 | utf-8-validate: '>=5.0.2' 2367 | peerDependenciesMeta: 2368 | bufferutil: 2369 | optional: true 2370 | utf-8-validate: 2371 | optional: true 2372 | 2373 | xast-util-to-xml@4.0.0: 2374 | resolution: {integrity: sha512-r1euIWS5yZJUNpfN+ReE4m7Vld2iytaOPJtuXVuRQacRZwqRN1MAb+dv0aGLrdXOZrpGLyvUFf1Upyrb3R5qBg==} 2375 | 2376 | xastscript@4.0.0: 2377 | resolution: {integrity: sha512-r7a0kObEyivkML0dLrp/nOH5l51y9v5DL1MT/Xc6qUgGGNP1mZZUmT6NXtWAmx2FLfjonop++PtpVMwp1Hw/Gw==} 2378 | 2379 | yallist@3.1.1: 2380 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2381 | 2382 | yaml@2.5.1: 2383 | resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} 2384 | engines: {node: '>= 14'} 2385 | hasBin: true 2386 | 2387 | yaml@2.7.1: 2388 | resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} 2389 | engines: {node: '>= 14'} 2390 | hasBin: true 2391 | 2392 | youch@3.3.4: 2393 | resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} 2394 | 2395 | zod@3.22.3: 2396 | resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} 2397 | 2398 | zod@3.23.8: 2399 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 2400 | 2401 | zod@3.24.4: 2402 | resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} 2403 | 2404 | snapshots: 2405 | 2406 | '@alloc/quick-lru@5.2.0': {} 2407 | 2408 | '@ampproject/remapping@2.3.0': 2409 | dependencies: 2410 | '@jridgewell/gen-mapping': 0.3.5 2411 | '@jridgewell/trace-mapping': 0.3.25 2412 | 2413 | '@asteasolutions/zod-to-openapi@7.1.2(zod@3.24.4)': 2414 | dependencies: 2415 | openapi3-ts: 4.4.0 2416 | zod: 3.24.4 2417 | 2418 | '@babel/code-frame@7.26.2': 2419 | dependencies: 2420 | '@babel/helper-validator-identifier': 7.25.9 2421 | js-tokens: 4.0.0 2422 | picocolors: 1.1.1 2423 | 2424 | '@babel/compat-data@7.26.2': {} 2425 | 2426 | '@babel/core@7.26.0': 2427 | dependencies: 2428 | '@ampproject/remapping': 2.3.0 2429 | '@babel/code-frame': 7.26.2 2430 | '@babel/generator': 7.26.2 2431 | '@babel/helper-compilation-targets': 7.25.9 2432 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) 2433 | '@babel/helpers': 7.26.0 2434 | '@babel/parser': 7.26.2 2435 | '@babel/template': 7.25.9 2436 | '@babel/traverse': 7.25.9 2437 | '@babel/types': 7.26.0 2438 | convert-source-map: 2.0.0 2439 | debug: 4.3.7 2440 | gensync: 1.0.0-beta.2 2441 | json5: 2.2.3 2442 | semver: 6.3.1 2443 | transitivePeerDependencies: 2444 | - supports-color 2445 | 2446 | '@babel/generator@7.26.2': 2447 | dependencies: 2448 | '@babel/parser': 7.26.2 2449 | '@babel/types': 7.26.0 2450 | '@jridgewell/gen-mapping': 0.3.5 2451 | '@jridgewell/trace-mapping': 0.3.25 2452 | jsesc: 3.0.2 2453 | 2454 | '@babel/helper-compilation-targets@7.25.9': 2455 | dependencies: 2456 | '@babel/compat-data': 7.26.2 2457 | '@babel/helper-validator-option': 7.25.9 2458 | browserslist: 4.24.2 2459 | lru-cache: 5.1.1 2460 | semver: 6.3.1 2461 | 2462 | '@babel/helper-module-imports@7.25.9': 2463 | dependencies: 2464 | '@babel/traverse': 7.25.9 2465 | '@babel/types': 7.26.0 2466 | transitivePeerDependencies: 2467 | - supports-color 2468 | 2469 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': 2470 | dependencies: 2471 | '@babel/core': 7.26.0 2472 | '@babel/helper-module-imports': 7.25.9 2473 | '@babel/helper-validator-identifier': 7.25.9 2474 | '@babel/traverse': 7.25.9 2475 | transitivePeerDependencies: 2476 | - supports-color 2477 | 2478 | '@babel/helper-plugin-utils@7.25.9': {} 2479 | 2480 | '@babel/helper-string-parser@7.25.9': {} 2481 | 2482 | '@babel/helper-validator-identifier@7.25.9': {} 2483 | 2484 | '@babel/helper-validator-option@7.25.9': {} 2485 | 2486 | '@babel/helpers@7.26.0': 2487 | dependencies: 2488 | '@babel/template': 7.25.9 2489 | '@babel/types': 7.26.0 2490 | 2491 | '@babel/parser@7.26.2': 2492 | dependencies: 2493 | '@babel/types': 7.26.0 2494 | 2495 | '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': 2496 | dependencies: 2497 | '@babel/core': 7.26.0 2498 | '@babel/helper-plugin-utils': 7.25.9 2499 | 2500 | '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': 2501 | dependencies: 2502 | '@babel/core': 7.26.0 2503 | '@babel/helper-plugin-utils': 7.25.9 2504 | 2505 | '@babel/template@7.25.9': 2506 | dependencies: 2507 | '@babel/code-frame': 7.26.2 2508 | '@babel/parser': 7.26.2 2509 | '@babel/types': 7.26.0 2510 | 2511 | '@babel/traverse@7.25.9': 2512 | dependencies: 2513 | '@babel/code-frame': 7.26.2 2514 | '@babel/generator': 7.26.2 2515 | '@babel/parser': 7.26.2 2516 | '@babel/template': 7.25.9 2517 | '@babel/types': 7.26.0 2518 | debug: 4.3.7 2519 | globals: 11.12.0 2520 | transitivePeerDependencies: 2521 | - supports-color 2522 | 2523 | '@babel/types@7.26.0': 2524 | dependencies: 2525 | '@babel/helper-string-parser': 7.25.9 2526 | '@babel/helper-validator-identifier': 7.25.9 2527 | 2528 | '@biomejs/biome@1.9.2': 2529 | optionalDependencies: 2530 | '@biomejs/cli-darwin-arm64': 1.9.2 2531 | '@biomejs/cli-darwin-x64': 1.9.2 2532 | '@biomejs/cli-linux-arm64': 1.9.2 2533 | '@biomejs/cli-linux-arm64-musl': 1.9.2 2534 | '@biomejs/cli-linux-x64': 1.9.2 2535 | '@biomejs/cli-linux-x64-musl': 1.9.2 2536 | '@biomejs/cli-win32-arm64': 1.9.2 2537 | '@biomejs/cli-win32-x64': 1.9.2 2538 | 2539 | '@biomejs/cli-darwin-arm64@1.9.2': 2540 | optional: true 2541 | 2542 | '@biomejs/cli-darwin-x64@1.9.2': 2543 | optional: true 2544 | 2545 | '@biomejs/cli-linux-arm64-musl@1.9.2': 2546 | optional: true 2547 | 2548 | '@biomejs/cli-linux-arm64@1.9.2': 2549 | optional: true 2550 | 2551 | '@biomejs/cli-linux-x64-musl@1.9.2': 2552 | optional: true 2553 | 2554 | '@biomejs/cli-linux-x64@1.9.2': 2555 | optional: true 2556 | 2557 | '@biomejs/cli-win32-arm64@1.9.2': 2558 | optional: true 2559 | 2560 | '@biomejs/cli-win32-x64@1.9.2': 2561 | optional: true 2562 | 2563 | '@cloudflare/kv-asset-handler@0.4.0': 2564 | dependencies: 2565 | mime: 3.0.0 2566 | 2567 | '@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250428.0)': 2568 | dependencies: 2569 | unenv: 2.0.0-rc.15 2570 | optionalDependencies: 2571 | workerd: 1.20250428.0 2572 | 2573 | '@cloudflare/workerd-darwin-64@1.20250428.0': 2574 | optional: true 2575 | 2576 | '@cloudflare/workerd-darwin-arm64@1.20250428.0': 2577 | optional: true 2578 | 2579 | '@cloudflare/workerd-linux-64@1.20250428.0': 2580 | optional: true 2581 | 2582 | '@cloudflare/workerd-linux-arm64@1.20250428.0': 2583 | optional: true 2584 | 2585 | '@cloudflare/workerd-windows-64@1.20250428.0': 2586 | optional: true 2587 | 2588 | '@cloudflare/workers-types@4.20250506.0': {} 2589 | 2590 | '@cspotcode/source-map-support@0.8.1': 2591 | dependencies: 2592 | '@jridgewell/trace-mapping': 0.3.9 2593 | 2594 | '@emnapi/runtime@1.4.3': 2595 | dependencies: 2596 | tslib: 2.8.1 2597 | optional: true 2598 | 2599 | '@esbuild/aix-ppc64@0.21.5': 2600 | optional: true 2601 | 2602 | '@esbuild/aix-ppc64@0.24.0': 2603 | optional: true 2604 | 2605 | '@esbuild/aix-ppc64@0.25.2': 2606 | optional: true 2607 | 2608 | '@esbuild/android-arm64@0.21.5': 2609 | optional: true 2610 | 2611 | '@esbuild/android-arm64@0.24.0': 2612 | optional: true 2613 | 2614 | '@esbuild/android-arm64@0.25.2': 2615 | optional: true 2616 | 2617 | '@esbuild/android-arm@0.21.5': 2618 | optional: true 2619 | 2620 | '@esbuild/android-arm@0.24.0': 2621 | optional: true 2622 | 2623 | '@esbuild/android-arm@0.25.2': 2624 | optional: true 2625 | 2626 | '@esbuild/android-x64@0.21.5': 2627 | optional: true 2628 | 2629 | '@esbuild/android-x64@0.24.0': 2630 | optional: true 2631 | 2632 | '@esbuild/android-x64@0.25.2': 2633 | optional: true 2634 | 2635 | '@esbuild/darwin-arm64@0.21.5': 2636 | optional: true 2637 | 2638 | '@esbuild/darwin-arm64@0.24.0': 2639 | optional: true 2640 | 2641 | '@esbuild/darwin-arm64@0.25.2': 2642 | optional: true 2643 | 2644 | '@esbuild/darwin-x64@0.21.5': 2645 | optional: true 2646 | 2647 | '@esbuild/darwin-x64@0.24.0': 2648 | optional: true 2649 | 2650 | '@esbuild/darwin-x64@0.25.2': 2651 | optional: true 2652 | 2653 | '@esbuild/freebsd-arm64@0.21.5': 2654 | optional: true 2655 | 2656 | '@esbuild/freebsd-arm64@0.24.0': 2657 | optional: true 2658 | 2659 | '@esbuild/freebsd-arm64@0.25.2': 2660 | optional: true 2661 | 2662 | '@esbuild/freebsd-x64@0.21.5': 2663 | optional: true 2664 | 2665 | '@esbuild/freebsd-x64@0.24.0': 2666 | optional: true 2667 | 2668 | '@esbuild/freebsd-x64@0.25.2': 2669 | optional: true 2670 | 2671 | '@esbuild/linux-arm64@0.21.5': 2672 | optional: true 2673 | 2674 | '@esbuild/linux-arm64@0.24.0': 2675 | optional: true 2676 | 2677 | '@esbuild/linux-arm64@0.25.2': 2678 | optional: true 2679 | 2680 | '@esbuild/linux-arm@0.21.5': 2681 | optional: true 2682 | 2683 | '@esbuild/linux-arm@0.24.0': 2684 | optional: true 2685 | 2686 | '@esbuild/linux-arm@0.25.2': 2687 | optional: true 2688 | 2689 | '@esbuild/linux-ia32@0.21.5': 2690 | optional: true 2691 | 2692 | '@esbuild/linux-ia32@0.24.0': 2693 | optional: true 2694 | 2695 | '@esbuild/linux-ia32@0.25.2': 2696 | optional: true 2697 | 2698 | '@esbuild/linux-loong64@0.21.5': 2699 | optional: true 2700 | 2701 | '@esbuild/linux-loong64@0.24.0': 2702 | optional: true 2703 | 2704 | '@esbuild/linux-loong64@0.25.2': 2705 | optional: true 2706 | 2707 | '@esbuild/linux-mips64el@0.21.5': 2708 | optional: true 2709 | 2710 | '@esbuild/linux-mips64el@0.24.0': 2711 | optional: true 2712 | 2713 | '@esbuild/linux-mips64el@0.25.2': 2714 | optional: true 2715 | 2716 | '@esbuild/linux-ppc64@0.21.5': 2717 | optional: true 2718 | 2719 | '@esbuild/linux-ppc64@0.24.0': 2720 | optional: true 2721 | 2722 | '@esbuild/linux-ppc64@0.25.2': 2723 | optional: true 2724 | 2725 | '@esbuild/linux-riscv64@0.21.5': 2726 | optional: true 2727 | 2728 | '@esbuild/linux-riscv64@0.24.0': 2729 | optional: true 2730 | 2731 | '@esbuild/linux-riscv64@0.25.2': 2732 | optional: true 2733 | 2734 | '@esbuild/linux-s390x@0.21.5': 2735 | optional: true 2736 | 2737 | '@esbuild/linux-s390x@0.24.0': 2738 | optional: true 2739 | 2740 | '@esbuild/linux-s390x@0.25.2': 2741 | optional: true 2742 | 2743 | '@esbuild/linux-x64@0.21.5': 2744 | optional: true 2745 | 2746 | '@esbuild/linux-x64@0.24.0': 2747 | optional: true 2748 | 2749 | '@esbuild/linux-x64@0.25.2': 2750 | optional: true 2751 | 2752 | '@esbuild/netbsd-arm64@0.25.2': 2753 | optional: true 2754 | 2755 | '@esbuild/netbsd-x64@0.21.5': 2756 | optional: true 2757 | 2758 | '@esbuild/netbsd-x64@0.24.0': 2759 | optional: true 2760 | 2761 | '@esbuild/netbsd-x64@0.25.2': 2762 | optional: true 2763 | 2764 | '@esbuild/openbsd-arm64@0.24.0': 2765 | optional: true 2766 | 2767 | '@esbuild/openbsd-arm64@0.25.2': 2768 | optional: true 2769 | 2770 | '@esbuild/openbsd-x64@0.21.5': 2771 | optional: true 2772 | 2773 | '@esbuild/openbsd-x64@0.24.0': 2774 | optional: true 2775 | 2776 | '@esbuild/openbsd-x64@0.25.2': 2777 | optional: true 2778 | 2779 | '@esbuild/sunos-x64@0.21.5': 2780 | optional: true 2781 | 2782 | '@esbuild/sunos-x64@0.24.0': 2783 | optional: true 2784 | 2785 | '@esbuild/sunos-x64@0.25.2': 2786 | optional: true 2787 | 2788 | '@esbuild/win32-arm64@0.21.5': 2789 | optional: true 2790 | 2791 | '@esbuild/win32-arm64@0.24.0': 2792 | optional: true 2793 | 2794 | '@esbuild/win32-arm64@0.25.2': 2795 | optional: true 2796 | 2797 | '@esbuild/win32-ia32@0.21.5': 2798 | optional: true 2799 | 2800 | '@esbuild/win32-ia32@0.24.0': 2801 | optional: true 2802 | 2803 | '@esbuild/win32-ia32@0.25.2': 2804 | optional: true 2805 | 2806 | '@esbuild/win32-x64@0.21.5': 2807 | optional: true 2808 | 2809 | '@esbuild/win32-x64@0.24.0': 2810 | optional: true 2811 | 2812 | '@esbuild/win32-x64@0.25.2': 2813 | optional: true 2814 | 2815 | '@eslint/js@9.15.0': {} 2816 | 2817 | '@fastify/busboy@2.1.1': {} 2818 | 2819 | '@floating-ui/core@1.6.8': 2820 | dependencies: 2821 | '@floating-ui/utils': 0.2.8 2822 | 2823 | '@floating-ui/dom@1.6.12': 2824 | dependencies: 2825 | '@floating-ui/core': 1.6.8 2826 | '@floating-ui/utils': 0.2.8 2827 | 2828 | '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2829 | dependencies: 2830 | '@floating-ui/dom': 1.6.12 2831 | react: 18.3.1 2832 | react-dom: 18.3.1(react@18.3.1) 2833 | 2834 | '@floating-ui/utils@0.2.8': {} 2835 | 2836 | '@hono/node-server@1.13.7(hono@4.6.3)': 2837 | dependencies: 2838 | hono: 4.6.3 2839 | 2840 | '@hono/swagger-ui@0.4.1(hono@4.6.3)': 2841 | dependencies: 2842 | hono: 4.6.3 2843 | 2844 | '@hono/zod-openapi@0.16.2(hono@4.6.3)(zod@3.24.4)': 2845 | dependencies: 2846 | '@asteasolutions/zod-to-openapi': 7.1.2(zod@3.24.4) 2847 | '@hono/zod-validator': 0.3.0(hono@4.6.3)(zod@3.24.4) 2848 | hono: 4.6.3 2849 | zod: 3.24.4 2850 | 2851 | '@hono/zod-validator@0.3.0(hono@4.6.3)(zod@3.24.4)': 2852 | dependencies: 2853 | hono: 4.6.3 2854 | zod: 3.24.4 2855 | 2856 | '@hookform/resolvers@3.9.1(react-hook-form@7.53.2(react@18.3.1))': 2857 | dependencies: 2858 | react-hook-form: 7.53.2(react@18.3.1) 2859 | 2860 | '@img/sharp-darwin-arm64@0.33.5': 2861 | optionalDependencies: 2862 | '@img/sharp-libvips-darwin-arm64': 1.0.4 2863 | optional: true 2864 | 2865 | '@img/sharp-darwin-x64@0.33.5': 2866 | optionalDependencies: 2867 | '@img/sharp-libvips-darwin-x64': 1.0.4 2868 | optional: true 2869 | 2870 | '@img/sharp-libvips-darwin-arm64@1.0.4': 2871 | optional: true 2872 | 2873 | '@img/sharp-libvips-darwin-x64@1.0.4': 2874 | optional: true 2875 | 2876 | '@img/sharp-libvips-linux-arm64@1.0.4': 2877 | optional: true 2878 | 2879 | '@img/sharp-libvips-linux-arm@1.0.5': 2880 | optional: true 2881 | 2882 | '@img/sharp-libvips-linux-s390x@1.0.4': 2883 | optional: true 2884 | 2885 | '@img/sharp-libvips-linux-x64@1.0.4': 2886 | optional: true 2887 | 2888 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 2889 | optional: true 2890 | 2891 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 2892 | optional: true 2893 | 2894 | '@img/sharp-linux-arm64@0.33.5': 2895 | optionalDependencies: 2896 | '@img/sharp-libvips-linux-arm64': 1.0.4 2897 | optional: true 2898 | 2899 | '@img/sharp-linux-arm@0.33.5': 2900 | optionalDependencies: 2901 | '@img/sharp-libvips-linux-arm': 1.0.5 2902 | optional: true 2903 | 2904 | '@img/sharp-linux-s390x@0.33.5': 2905 | optionalDependencies: 2906 | '@img/sharp-libvips-linux-s390x': 1.0.4 2907 | optional: true 2908 | 2909 | '@img/sharp-linux-x64@0.33.5': 2910 | optionalDependencies: 2911 | '@img/sharp-libvips-linux-x64': 1.0.4 2912 | optional: true 2913 | 2914 | '@img/sharp-linuxmusl-arm64@0.33.5': 2915 | optionalDependencies: 2916 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 2917 | optional: true 2918 | 2919 | '@img/sharp-linuxmusl-x64@0.33.5': 2920 | optionalDependencies: 2921 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 2922 | optional: true 2923 | 2924 | '@img/sharp-wasm32@0.33.5': 2925 | dependencies: 2926 | '@emnapi/runtime': 1.4.3 2927 | optional: true 2928 | 2929 | '@img/sharp-win32-ia32@0.33.5': 2930 | optional: true 2931 | 2932 | '@img/sharp-win32-x64@0.33.5': 2933 | optional: true 2934 | 2935 | '@isaacs/cliui@8.0.2': 2936 | dependencies: 2937 | string-width: 5.1.2 2938 | string-width-cjs: string-width@4.2.3 2939 | strip-ansi: 7.1.0 2940 | strip-ansi-cjs: strip-ansi@6.0.1 2941 | wrap-ansi: 8.1.0 2942 | wrap-ansi-cjs: wrap-ansi@7.0.0 2943 | 2944 | '@jridgewell/gen-mapping@0.3.5': 2945 | dependencies: 2946 | '@jridgewell/set-array': 1.2.1 2947 | '@jridgewell/sourcemap-codec': 1.5.0 2948 | '@jridgewell/trace-mapping': 0.3.25 2949 | 2950 | '@jridgewell/resolve-uri@3.1.2': {} 2951 | 2952 | '@jridgewell/set-array@1.2.1': {} 2953 | 2954 | '@jridgewell/sourcemap-codec@1.5.0': {} 2955 | 2956 | '@jridgewell/trace-mapping@0.3.25': 2957 | dependencies: 2958 | '@jridgewell/resolve-uri': 3.1.2 2959 | '@jridgewell/sourcemap-codec': 1.5.0 2960 | 2961 | '@jridgewell/trace-mapping@0.3.9': 2962 | dependencies: 2963 | '@jridgewell/resolve-uri': 3.1.2 2964 | '@jridgewell/sourcemap-codec': 1.5.0 2965 | 2966 | '@nodelib/fs.scandir@2.1.5': 2967 | dependencies: 2968 | '@nodelib/fs.stat': 2.0.5 2969 | run-parallel: 1.2.0 2970 | 2971 | '@nodelib/fs.stat@2.0.5': {} 2972 | 2973 | '@nodelib/fs.walk@1.2.8': 2974 | dependencies: 2975 | '@nodelib/fs.scandir': 2.1.5 2976 | fastq: 1.17.1 2977 | 2978 | '@pkgjs/parseargs@0.11.0': 2979 | optional: true 2980 | 2981 | '@radix-ui/number@1.1.0': {} 2982 | 2983 | '@radix-ui/primitive@1.1.0': {} 2984 | 2985 | '@radix-ui/react-accordion@1.2.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2986 | dependencies: 2987 | '@radix-ui/primitive': 1.1.0 2988 | '@radix-ui/react-collapsible': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2989 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2990 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 2991 | '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) 2992 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) 2993 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) 2994 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2995 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) 2996 | react: 18.3.1 2997 | react-dom: 18.3.1(react@18.3.1) 2998 | optionalDependencies: 2999 | '@types/react': 18.3.12 3000 | '@types/react-dom': 18.3.1 3001 | 3002 | '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3003 | dependencies: 3004 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3005 | react: 18.3.1 3006 | react-dom: 18.3.1(react@18.3.1) 3007 | optionalDependencies: 3008 | '@types/react': 18.3.12 3009 | '@types/react-dom': 18.3.1 3010 | 3011 | '@radix-ui/react-collapsible@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3012 | dependencies: 3013 | '@radix-ui/primitive': 1.1.0 3014 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3015 | '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3016 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3017 | '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3018 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3019 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3020 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3021 | react: 18.3.1 3022 | react-dom: 18.3.1(react@18.3.1) 3023 | optionalDependencies: 3024 | '@types/react': 18.3.12 3025 | '@types/react-dom': 18.3.1 3026 | 3027 | '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3028 | dependencies: 3029 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3030 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3031 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3032 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3033 | react: 18.3.1 3034 | react-dom: 18.3.1(react@18.3.1) 3035 | optionalDependencies: 3036 | '@types/react': 18.3.12 3037 | '@types/react-dom': 18.3.1 3038 | 3039 | '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3040 | dependencies: 3041 | react: 18.3.1 3042 | optionalDependencies: 3043 | '@types/react': 18.3.12 3044 | 3045 | '@radix-ui/react-context@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3046 | dependencies: 3047 | react: 18.3.1 3048 | optionalDependencies: 3049 | '@types/react': 18.3.12 3050 | 3051 | '@radix-ui/react-context@1.1.1(@types/react@18.3.12)(react@18.3.1)': 3052 | dependencies: 3053 | react: 18.3.1 3054 | optionalDependencies: 3055 | '@types/react': 18.3.12 3056 | 3057 | '@radix-ui/react-direction@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3058 | dependencies: 3059 | react: 18.3.1 3060 | optionalDependencies: 3061 | '@types/react': 18.3.12 3062 | 3063 | '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3064 | dependencies: 3065 | '@radix-ui/primitive': 1.1.0 3066 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3067 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3068 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3069 | '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3070 | react: 18.3.1 3071 | react-dom: 18.3.1(react@18.3.1) 3072 | optionalDependencies: 3073 | '@types/react': 18.3.12 3074 | '@types/react-dom': 18.3.1 3075 | 3076 | '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3077 | dependencies: 3078 | '@radix-ui/primitive': 1.1.0 3079 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3080 | '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3081 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3082 | '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3083 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3084 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3085 | react: 18.3.1 3086 | react-dom: 18.3.1(react@18.3.1) 3087 | optionalDependencies: 3088 | '@types/react': 18.3.12 3089 | '@types/react-dom': 18.3.1 3090 | 3091 | '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.12)(react@18.3.1)': 3092 | dependencies: 3093 | react: 18.3.1 3094 | optionalDependencies: 3095 | '@types/react': 18.3.12 3096 | 3097 | '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3098 | dependencies: 3099 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3100 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3101 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3102 | react: 18.3.1 3103 | react-dom: 18.3.1(react@18.3.1) 3104 | optionalDependencies: 3105 | '@types/react': 18.3.12 3106 | '@types/react-dom': 18.3.1 3107 | 3108 | '@radix-ui/react-id@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3109 | dependencies: 3110 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3111 | react: 18.3.1 3112 | optionalDependencies: 3113 | '@types/react': 18.3.12 3114 | 3115 | '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3116 | dependencies: 3117 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3118 | react: 18.3.1 3119 | react-dom: 18.3.1(react@18.3.1) 3120 | optionalDependencies: 3121 | '@types/react': 18.3.12 3122 | '@types/react-dom': 18.3.1 3123 | 3124 | '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3125 | dependencies: 3126 | '@radix-ui/primitive': 1.1.0 3127 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3128 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3129 | '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3130 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3131 | '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3132 | '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3133 | '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3134 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3135 | '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3136 | '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3137 | '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3138 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3139 | '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3140 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3141 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3142 | aria-hidden: 1.2.4 3143 | react: 18.3.1 3144 | react-dom: 18.3.1(react@18.3.1) 3145 | react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1) 3146 | optionalDependencies: 3147 | '@types/react': 18.3.12 3148 | '@types/react-dom': 18.3.1 3149 | 3150 | '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3151 | dependencies: 3152 | '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3153 | '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3154 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3155 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3156 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3157 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3158 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3159 | '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3160 | '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3161 | '@radix-ui/rect': 1.1.0 3162 | react: 18.3.1 3163 | react-dom: 18.3.1(react@18.3.1) 3164 | optionalDependencies: 3165 | '@types/react': 18.3.12 3166 | '@types/react-dom': 18.3.1 3167 | 3168 | '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3169 | dependencies: 3170 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3171 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3172 | react: 18.3.1 3173 | react-dom: 18.3.1(react@18.3.1) 3174 | optionalDependencies: 3175 | '@types/react': 18.3.12 3176 | '@types/react-dom': 18.3.1 3177 | 3178 | '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3179 | dependencies: 3180 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3181 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3182 | react: 18.3.1 3183 | react-dom: 18.3.1(react@18.3.1) 3184 | optionalDependencies: 3185 | '@types/react': 18.3.12 3186 | '@types/react-dom': 18.3.1 3187 | 3188 | '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3189 | dependencies: 3190 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3191 | react: 18.3.1 3192 | react-dom: 18.3.1(react@18.3.1) 3193 | optionalDependencies: 3194 | '@types/react': 18.3.12 3195 | '@types/react-dom': 18.3.1 3196 | 3197 | '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3198 | dependencies: 3199 | '@radix-ui/primitive': 1.1.0 3200 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3201 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3202 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3203 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3204 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3205 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3206 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3207 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3208 | react: 18.3.1 3209 | react-dom: 18.3.1(react@18.3.1) 3210 | optionalDependencies: 3211 | '@types/react': 18.3.12 3212 | '@types/react-dom': 18.3.1 3213 | 3214 | '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3215 | dependencies: 3216 | '@radix-ui/number': 1.1.0 3217 | '@radix-ui/primitive': 1.1.0 3218 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3219 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3220 | '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3221 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3222 | '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3223 | '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3224 | '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3225 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3226 | '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3227 | '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3228 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3229 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3230 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3231 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3232 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3233 | '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3234 | '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3235 | aria-hidden: 1.2.4 3236 | react: 18.3.1 3237 | react-dom: 18.3.1(react@18.3.1) 3238 | react-remove-scroll: 2.6.0(@types/react@18.3.12)(react@18.3.1) 3239 | optionalDependencies: 3240 | '@types/react': 18.3.12 3241 | '@types/react-dom': 18.3.1 3242 | 3243 | '@radix-ui/react-slot@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3244 | dependencies: 3245 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3246 | react: 18.3.1 3247 | optionalDependencies: 3248 | '@types/react': 18.3.12 3249 | 3250 | '@radix-ui/react-toast@1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3251 | dependencies: 3252 | '@radix-ui/primitive': 1.1.0 3253 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3254 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3255 | '@radix-ui/react-context': 1.1.1(@types/react@18.3.12)(react@18.3.1) 3256 | '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3257 | '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3258 | '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3259 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3260 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3261 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3262 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3263 | '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3264 | react: 18.3.1 3265 | react-dom: 18.3.1(react@18.3.1) 3266 | optionalDependencies: 3267 | '@types/react': 18.3.12 3268 | '@types/react-dom': 18.3.1 3269 | 3270 | '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3271 | dependencies: 3272 | react: 18.3.1 3273 | optionalDependencies: 3274 | '@types/react': 18.3.12 3275 | 3276 | '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3277 | dependencies: 3278 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3279 | react: 18.3.1 3280 | optionalDependencies: 3281 | '@types/react': 18.3.12 3282 | 3283 | '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3284 | dependencies: 3285 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3286 | react: 18.3.1 3287 | optionalDependencies: 3288 | '@types/react': 18.3.12 3289 | 3290 | '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3291 | dependencies: 3292 | react: 18.3.1 3293 | optionalDependencies: 3294 | '@types/react': 18.3.12 3295 | 3296 | '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3297 | dependencies: 3298 | react: 18.3.1 3299 | optionalDependencies: 3300 | '@types/react': 18.3.12 3301 | 3302 | '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3303 | dependencies: 3304 | '@radix-ui/rect': 1.1.0 3305 | react: 18.3.1 3306 | optionalDependencies: 3307 | '@types/react': 18.3.12 3308 | 3309 | '@radix-ui/react-use-size@1.1.0(@types/react@18.3.12)(react@18.3.1)': 3310 | dependencies: 3311 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.12)(react@18.3.1) 3312 | react: 18.3.1 3313 | optionalDependencies: 3314 | '@types/react': 18.3.12 3315 | 3316 | '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 3317 | dependencies: 3318 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 3319 | react: 18.3.1 3320 | react-dom: 18.3.1(react@18.3.1) 3321 | optionalDependencies: 3322 | '@types/react': 18.3.12 3323 | '@types/react-dom': 18.3.1 3324 | 3325 | '@radix-ui/rect@1.1.0': {} 3326 | 3327 | '@rollup/rollup-android-arm-eabi@4.27.3': 3328 | optional: true 3329 | 3330 | '@rollup/rollup-android-arm64@4.27.3': 3331 | optional: true 3332 | 3333 | '@rollup/rollup-darwin-arm64@4.27.3': 3334 | optional: true 3335 | 3336 | '@rollup/rollup-darwin-x64@4.27.3': 3337 | optional: true 3338 | 3339 | '@rollup/rollup-freebsd-arm64@4.27.3': 3340 | optional: true 3341 | 3342 | '@rollup/rollup-freebsd-x64@4.27.3': 3343 | optional: true 3344 | 3345 | '@rollup/rollup-linux-arm-gnueabihf@4.27.3': 3346 | optional: true 3347 | 3348 | '@rollup/rollup-linux-arm-musleabihf@4.27.3': 3349 | optional: true 3350 | 3351 | '@rollup/rollup-linux-arm64-gnu@4.27.3': 3352 | optional: true 3353 | 3354 | '@rollup/rollup-linux-arm64-musl@4.27.3': 3355 | optional: true 3356 | 3357 | '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': 3358 | optional: true 3359 | 3360 | '@rollup/rollup-linux-riscv64-gnu@4.27.3': 3361 | optional: true 3362 | 3363 | '@rollup/rollup-linux-s390x-gnu@4.27.3': 3364 | optional: true 3365 | 3366 | '@rollup/rollup-linux-x64-gnu@4.27.3': 3367 | optional: true 3368 | 3369 | '@rollup/rollup-linux-x64-musl@4.27.3': 3370 | optional: true 3371 | 3372 | '@rollup/rollup-win32-arm64-msvc@4.27.3': 3373 | optional: true 3374 | 3375 | '@rollup/rollup-win32-ia32-msvc@4.27.3': 3376 | optional: true 3377 | 3378 | '@rollup/rollup-win32-x64-msvc@4.27.3': 3379 | optional: true 3380 | 3381 | '@types/babel__core@7.20.5': 3382 | dependencies: 3383 | '@babel/parser': 7.26.2 3384 | '@babel/types': 7.26.0 3385 | '@types/babel__generator': 7.6.8 3386 | '@types/babel__template': 7.4.4 3387 | '@types/babel__traverse': 7.20.6 3388 | 3389 | '@types/babel__generator@7.6.8': 3390 | dependencies: 3391 | '@babel/types': 7.26.0 3392 | 3393 | '@types/babel__template@7.4.4': 3394 | dependencies: 3395 | '@babel/parser': 7.26.2 3396 | '@babel/types': 7.26.0 3397 | 3398 | '@types/babel__traverse@7.20.6': 3399 | dependencies: 3400 | '@babel/types': 7.26.0 3401 | 3402 | '@types/estree@1.0.6': {} 3403 | 3404 | '@types/node@20.8.3': {} 3405 | 3406 | '@types/prop-types@15.7.13': {} 3407 | 3408 | '@types/react-dom@18.3.1': 3409 | dependencies: 3410 | '@types/react': 18.3.12 3411 | 3412 | '@types/react@18.3.12': 3413 | dependencies: 3414 | '@types/prop-types': 15.7.13 3415 | csstype: 3.1.3 3416 | 3417 | '@types/unist@3.0.3': {} 3418 | 3419 | '@types/xast@2.0.4': 3420 | dependencies: 3421 | '@types/unist': 3.0.3 3422 | 3423 | '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@20.8.3))': 3424 | dependencies: 3425 | '@babel/core': 7.26.0 3426 | '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) 3427 | '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) 3428 | '@types/babel__core': 7.20.5 3429 | react-refresh: 0.14.2 3430 | vite: 5.4.11(@types/node@20.8.3) 3431 | transitivePeerDependencies: 3432 | - supports-color 3433 | 3434 | acorn-walk@8.3.2: {} 3435 | 3436 | acorn@8.14.0: {} 3437 | 3438 | ansi-regex@5.0.1: {} 3439 | 3440 | ansi-regex@6.1.0: {} 3441 | 3442 | ansi-styles@4.3.0: 3443 | dependencies: 3444 | color-convert: 2.0.1 3445 | 3446 | ansi-styles@6.2.1: {} 3447 | 3448 | any-promise@1.3.0: {} 3449 | 3450 | anymatch@3.1.3: 3451 | dependencies: 3452 | normalize-path: 3.0.0 3453 | picomatch: 2.3.1 3454 | 3455 | arg@5.0.2: {} 3456 | 3457 | aria-hidden@1.2.4: 3458 | dependencies: 3459 | tslib: 2.7.0 3460 | 3461 | as-table@1.0.55: 3462 | dependencies: 3463 | printable-characters: 1.0.42 3464 | 3465 | autoprefixer@10.4.20(postcss@8.4.49): 3466 | dependencies: 3467 | browserslist: 4.24.2 3468 | caniuse-lite: 1.0.30001683 3469 | fraction.js: 4.3.7 3470 | normalize-range: 0.1.2 3471 | picocolors: 1.1.1 3472 | postcss: 8.4.49 3473 | postcss-value-parser: 4.2.0 3474 | 3475 | balanced-match@1.0.2: {} 3476 | 3477 | binary-extensions@2.3.0: {} 3478 | 3479 | blake3-wasm@2.1.5: {} 3480 | 3481 | brace-expansion@2.0.1: 3482 | dependencies: 3483 | balanced-match: 1.0.2 3484 | 3485 | braces@3.0.3: 3486 | dependencies: 3487 | fill-range: 7.1.1 3488 | 3489 | browserslist@4.24.2: 3490 | dependencies: 3491 | caniuse-lite: 1.0.30001683 3492 | electron-to-chromium: 1.5.64 3493 | node-releases: 2.0.18 3494 | update-browserslist-db: 1.1.1(browserslist@4.24.2) 3495 | 3496 | bundle-require@5.0.0(esbuild@0.24.0): 3497 | dependencies: 3498 | esbuild: 0.24.0 3499 | load-tsconfig: 0.2.5 3500 | 3501 | cac@6.7.14: {} 3502 | 3503 | camelcase-css@2.0.1: {} 3504 | 3505 | caniuse-lite@1.0.30001683: {} 3506 | 3507 | ccount@2.0.1: {} 3508 | 3509 | character-entities-html4@2.1.0: {} 3510 | 3511 | character-entities-legacy@3.0.0: {} 3512 | 3513 | chokidar@3.6.0: 3514 | dependencies: 3515 | anymatch: 3.1.3 3516 | braces: 3.0.3 3517 | glob-parent: 5.1.2 3518 | is-binary-path: 2.1.0 3519 | is-glob: 4.0.3 3520 | normalize-path: 3.0.0 3521 | readdirp: 3.6.0 3522 | optionalDependencies: 3523 | fsevents: 2.3.3 3524 | 3525 | chokidar@4.0.1: 3526 | dependencies: 3527 | readdirp: 4.0.2 3528 | 3529 | class-variance-authority@0.7.0: 3530 | dependencies: 3531 | clsx: 2.0.0 3532 | 3533 | clsx@2.0.0: {} 3534 | 3535 | clsx@2.1.1: {} 3536 | 3537 | color-convert@2.0.1: 3538 | dependencies: 3539 | color-name: 1.1.4 3540 | 3541 | color-name@1.1.4: {} 3542 | 3543 | color-string@1.9.1: 3544 | dependencies: 3545 | color-name: 1.1.4 3546 | simple-swizzle: 0.2.2 3547 | optional: true 3548 | 3549 | color@4.2.3: 3550 | dependencies: 3551 | color-convert: 2.0.1 3552 | color-string: 1.9.1 3553 | optional: true 3554 | 3555 | commander@4.1.1: {} 3556 | 3557 | consola@3.2.3: {} 3558 | 3559 | convert-source-map@2.0.0: {} 3560 | 3561 | cookie@0.7.2: {} 3562 | 3563 | cross-spawn@7.0.6: 3564 | dependencies: 3565 | path-key: 3.1.1 3566 | shebang-command: 2.0.0 3567 | which: 2.0.2 3568 | 3569 | cssesc@3.0.0: {} 3570 | 3571 | csstype@3.1.3: {} 3572 | 3573 | data-uri-to-buffer@2.0.2: {} 3574 | 3575 | debug@4.3.7: 3576 | dependencies: 3577 | ms: 2.1.3 3578 | 3579 | defu@6.1.4: {} 3580 | 3581 | detect-libc@2.0.4: 3582 | optional: true 3583 | 3584 | detect-node-es@1.1.0: {} 3585 | 3586 | didyoumean@1.2.2: {} 3587 | 3588 | dlv@1.1.3: {} 3589 | 3590 | eastasianwidth@0.2.0: {} 3591 | 3592 | electron-to-chromium@1.5.64: {} 3593 | 3594 | emoji-regex@8.0.0: {} 3595 | 3596 | emoji-regex@9.2.2: {} 3597 | 3598 | esbuild@0.21.5: 3599 | optionalDependencies: 3600 | '@esbuild/aix-ppc64': 0.21.5 3601 | '@esbuild/android-arm': 0.21.5 3602 | '@esbuild/android-arm64': 0.21.5 3603 | '@esbuild/android-x64': 0.21.5 3604 | '@esbuild/darwin-arm64': 0.21.5 3605 | '@esbuild/darwin-x64': 0.21.5 3606 | '@esbuild/freebsd-arm64': 0.21.5 3607 | '@esbuild/freebsd-x64': 0.21.5 3608 | '@esbuild/linux-arm': 0.21.5 3609 | '@esbuild/linux-arm64': 0.21.5 3610 | '@esbuild/linux-ia32': 0.21.5 3611 | '@esbuild/linux-loong64': 0.21.5 3612 | '@esbuild/linux-mips64el': 0.21.5 3613 | '@esbuild/linux-ppc64': 0.21.5 3614 | '@esbuild/linux-riscv64': 0.21.5 3615 | '@esbuild/linux-s390x': 0.21.5 3616 | '@esbuild/linux-x64': 0.21.5 3617 | '@esbuild/netbsd-x64': 0.21.5 3618 | '@esbuild/openbsd-x64': 0.21.5 3619 | '@esbuild/sunos-x64': 0.21.5 3620 | '@esbuild/win32-arm64': 0.21.5 3621 | '@esbuild/win32-ia32': 0.21.5 3622 | '@esbuild/win32-x64': 0.21.5 3623 | 3624 | esbuild@0.24.0: 3625 | optionalDependencies: 3626 | '@esbuild/aix-ppc64': 0.24.0 3627 | '@esbuild/android-arm': 0.24.0 3628 | '@esbuild/android-arm64': 0.24.0 3629 | '@esbuild/android-x64': 0.24.0 3630 | '@esbuild/darwin-arm64': 0.24.0 3631 | '@esbuild/darwin-x64': 0.24.0 3632 | '@esbuild/freebsd-arm64': 0.24.0 3633 | '@esbuild/freebsd-x64': 0.24.0 3634 | '@esbuild/linux-arm': 0.24.0 3635 | '@esbuild/linux-arm64': 0.24.0 3636 | '@esbuild/linux-ia32': 0.24.0 3637 | '@esbuild/linux-loong64': 0.24.0 3638 | '@esbuild/linux-mips64el': 0.24.0 3639 | '@esbuild/linux-ppc64': 0.24.0 3640 | '@esbuild/linux-riscv64': 0.24.0 3641 | '@esbuild/linux-s390x': 0.24.0 3642 | '@esbuild/linux-x64': 0.24.0 3643 | '@esbuild/netbsd-x64': 0.24.0 3644 | '@esbuild/openbsd-arm64': 0.24.0 3645 | '@esbuild/openbsd-x64': 0.24.0 3646 | '@esbuild/sunos-x64': 0.24.0 3647 | '@esbuild/win32-arm64': 0.24.0 3648 | '@esbuild/win32-ia32': 0.24.0 3649 | '@esbuild/win32-x64': 0.24.0 3650 | 3651 | esbuild@0.25.2: 3652 | optionalDependencies: 3653 | '@esbuild/aix-ppc64': 0.25.2 3654 | '@esbuild/android-arm': 0.25.2 3655 | '@esbuild/android-arm64': 0.25.2 3656 | '@esbuild/android-x64': 0.25.2 3657 | '@esbuild/darwin-arm64': 0.25.2 3658 | '@esbuild/darwin-x64': 0.25.2 3659 | '@esbuild/freebsd-arm64': 0.25.2 3660 | '@esbuild/freebsd-x64': 0.25.2 3661 | '@esbuild/linux-arm': 0.25.2 3662 | '@esbuild/linux-arm64': 0.25.2 3663 | '@esbuild/linux-ia32': 0.25.2 3664 | '@esbuild/linux-loong64': 0.25.2 3665 | '@esbuild/linux-mips64el': 0.25.2 3666 | '@esbuild/linux-ppc64': 0.25.2 3667 | '@esbuild/linux-riscv64': 0.25.2 3668 | '@esbuild/linux-s390x': 0.25.2 3669 | '@esbuild/linux-x64': 0.25.2 3670 | '@esbuild/netbsd-arm64': 0.25.2 3671 | '@esbuild/netbsd-x64': 0.25.2 3672 | '@esbuild/openbsd-arm64': 0.25.2 3673 | '@esbuild/openbsd-x64': 0.25.2 3674 | '@esbuild/sunos-x64': 0.25.2 3675 | '@esbuild/win32-arm64': 0.25.2 3676 | '@esbuild/win32-ia32': 0.25.2 3677 | '@esbuild/win32-x64': 0.25.2 3678 | 3679 | escalade@3.2.0: {} 3680 | 3681 | exit-hook@2.2.1: {} 3682 | 3683 | exsolve@1.0.5: {} 3684 | 3685 | fast-glob@3.3.2: 3686 | dependencies: 3687 | '@nodelib/fs.stat': 2.0.5 3688 | '@nodelib/fs.walk': 1.2.8 3689 | glob-parent: 5.1.2 3690 | merge2: 1.4.1 3691 | micromatch: 4.0.8 3692 | 3693 | fastq@1.17.1: 3694 | dependencies: 3695 | reusify: 1.0.4 3696 | 3697 | fdir@6.4.2(picomatch@4.0.2): 3698 | optionalDependencies: 3699 | picomatch: 4.0.2 3700 | 3701 | fill-range@7.1.1: 3702 | dependencies: 3703 | to-regex-range: 5.0.1 3704 | 3705 | foreground-child@3.3.0: 3706 | dependencies: 3707 | cross-spawn: 7.0.6 3708 | signal-exit: 4.1.0 3709 | 3710 | fraction.js@4.3.7: {} 3711 | 3712 | fsevents@2.3.3: 3713 | optional: true 3714 | 3715 | function-bind@1.1.2: {} 3716 | 3717 | gensync@1.0.0-beta.2: {} 3718 | 3719 | get-nonce@1.0.1: {} 3720 | 3721 | get-source@2.0.12: 3722 | dependencies: 3723 | data-uri-to-buffer: 2.0.2 3724 | source-map: 0.6.1 3725 | 3726 | glob-parent@5.1.2: 3727 | dependencies: 3728 | is-glob: 4.0.3 3729 | 3730 | glob-parent@6.0.2: 3731 | dependencies: 3732 | is-glob: 4.0.3 3733 | 3734 | glob-to-regexp@0.4.1: {} 3735 | 3736 | glob@10.4.5: 3737 | dependencies: 3738 | foreground-child: 3.3.0 3739 | jackspeak: 3.4.3 3740 | minimatch: 9.0.5 3741 | minipass: 7.1.2 3742 | package-json-from-dist: 1.0.1 3743 | path-scurry: 1.11.1 3744 | 3745 | globals@11.12.0: {} 3746 | 3747 | globals@15.12.0: {} 3748 | 3749 | hasown@2.0.2: 3750 | dependencies: 3751 | function-bind: 1.1.2 3752 | 3753 | hono@4.6.3: {} 3754 | 3755 | invariant@2.2.4: 3756 | dependencies: 3757 | loose-envify: 1.4.0 3758 | 3759 | is-arrayish@0.3.2: 3760 | optional: true 3761 | 3762 | is-binary-path@2.1.0: 3763 | dependencies: 3764 | binary-extensions: 2.3.0 3765 | 3766 | is-core-module@2.15.1: 3767 | dependencies: 3768 | hasown: 2.0.2 3769 | 3770 | is-extglob@2.1.1: {} 3771 | 3772 | is-fullwidth-code-point@3.0.0: {} 3773 | 3774 | is-glob@4.0.3: 3775 | dependencies: 3776 | is-extglob: 2.1.1 3777 | 3778 | is-number@7.0.0: {} 3779 | 3780 | isexe@2.0.0: {} 3781 | 3782 | jackspeak@3.4.3: 3783 | dependencies: 3784 | '@isaacs/cliui': 8.0.2 3785 | optionalDependencies: 3786 | '@pkgjs/parseargs': 0.11.0 3787 | 3788 | jiti@1.21.6: {} 3789 | 3790 | jiti@2.4.2: 3791 | optional: true 3792 | 3793 | joycon@3.1.1: {} 3794 | 3795 | js-tokens@4.0.0: {} 3796 | 3797 | jsesc@3.0.2: {} 3798 | 3799 | json5@2.2.3: {} 3800 | 3801 | lilconfig@2.1.0: {} 3802 | 3803 | lilconfig@3.1.2: {} 3804 | 3805 | lines-and-columns@1.2.4: {} 3806 | 3807 | load-tsconfig@0.2.5: {} 3808 | 3809 | lodash.sortby@4.7.0: {} 3810 | 3811 | loose-envify@1.4.0: 3812 | dependencies: 3813 | js-tokens: 4.0.0 3814 | 3815 | lru-cache@10.4.3: {} 3816 | 3817 | lru-cache@5.1.1: 3818 | dependencies: 3819 | yallist: 3.1.1 3820 | 3821 | lucide-react@0.460.0(react@18.3.1): 3822 | dependencies: 3823 | react: 18.3.1 3824 | 3825 | merge2@1.4.1: {} 3826 | 3827 | micromatch@4.0.8: 3828 | dependencies: 3829 | braces: 3.0.3 3830 | picomatch: 2.3.1 3831 | 3832 | mime@3.0.0: {} 3833 | 3834 | miniflare@4.20250428.1: 3835 | dependencies: 3836 | '@cspotcode/source-map-support': 0.8.1 3837 | acorn: 8.14.0 3838 | acorn-walk: 8.3.2 3839 | exit-hook: 2.2.1 3840 | glob-to-regexp: 0.4.1 3841 | stoppable: 1.1.0 3842 | undici: 5.29.0 3843 | workerd: 1.20250428.0 3844 | ws: 8.18.0 3845 | youch: 3.3.4 3846 | zod: 3.22.3 3847 | transitivePeerDependencies: 3848 | - bufferutil 3849 | - utf-8-validate 3850 | 3851 | minimatch@9.0.5: 3852 | dependencies: 3853 | brace-expansion: 2.0.1 3854 | 3855 | minipass@7.1.2: {} 3856 | 3857 | ms@2.1.3: {} 3858 | 3859 | mustache@4.2.0: {} 3860 | 3861 | mz@2.7.0: 3862 | dependencies: 3863 | any-promise: 1.3.0 3864 | object-assign: 4.1.1 3865 | thenify-all: 1.6.0 3866 | 3867 | nanoid@3.3.11: 3868 | optional: true 3869 | 3870 | nanoid@3.3.7: {} 3871 | 3872 | node-releases@2.0.18: {} 3873 | 3874 | normalize-path@3.0.0: {} 3875 | 3876 | normalize-range@0.1.2: {} 3877 | 3878 | object-assign@4.1.1: {} 3879 | 3880 | object-hash@3.0.0: {} 3881 | 3882 | ohash@2.0.11: {} 3883 | 3884 | openapi3-ts@4.4.0: 3885 | dependencies: 3886 | yaml: 2.5.1 3887 | 3888 | package-json-from-dist@1.0.1: {} 3889 | 3890 | path-key@3.1.1: {} 3891 | 3892 | path-parse@1.0.7: {} 3893 | 3894 | path-scurry@1.11.1: 3895 | dependencies: 3896 | lru-cache: 10.4.3 3897 | minipass: 7.1.2 3898 | 3899 | path-to-regexp@6.3.0: {} 3900 | 3901 | pathe@2.0.3: {} 3902 | 3903 | picocolors@1.1.1: {} 3904 | 3905 | picomatch@2.3.1: {} 3906 | 3907 | picomatch@4.0.2: {} 3908 | 3909 | pify@2.3.0: {} 3910 | 3911 | pirates@4.0.6: {} 3912 | 3913 | postcss-import@15.1.0(postcss@8.4.49): 3914 | dependencies: 3915 | postcss: 8.4.49 3916 | postcss-value-parser: 4.2.0 3917 | read-cache: 1.0.0 3918 | resolve: 1.22.8 3919 | 3920 | postcss-js@4.0.1(postcss@8.4.49): 3921 | dependencies: 3922 | camelcase-css: 2.0.1 3923 | postcss: 8.4.49 3924 | 3925 | postcss-load-config@4.0.2(postcss@8.4.49): 3926 | dependencies: 3927 | lilconfig: 3.1.2 3928 | yaml: 2.5.1 3929 | optionalDependencies: 3930 | postcss: 8.4.49 3931 | 3932 | postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.7.1): 3933 | dependencies: 3934 | lilconfig: 3.1.2 3935 | optionalDependencies: 3936 | jiti: 2.4.2 3937 | postcss: 8.5.3 3938 | yaml: 2.7.1 3939 | 3940 | postcss-nested@6.2.0(postcss@8.4.49): 3941 | dependencies: 3942 | postcss: 8.4.49 3943 | postcss-selector-parser: 6.1.2 3944 | 3945 | postcss-selector-parser@6.1.2: 3946 | dependencies: 3947 | cssesc: 3.0.0 3948 | util-deprecate: 1.0.2 3949 | 3950 | postcss-value-parser@4.2.0: {} 3951 | 3952 | postcss@8.4.49: 3953 | dependencies: 3954 | nanoid: 3.3.7 3955 | picocolors: 1.1.1 3956 | source-map-js: 1.2.1 3957 | 3958 | postcss@8.5.3: 3959 | dependencies: 3960 | nanoid: 3.3.11 3961 | picocolors: 1.1.1 3962 | source-map-js: 1.2.1 3963 | optional: true 3964 | 3965 | printable-characters@1.0.42: {} 3966 | 3967 | punycode@2.3.1: {} 3968 | 3969 | queue-microtask@1.2.3: {} 3970 | 3971 | react-dom@18.3.1(react@18.3.1): 3972 | dependencies: 3973 | loose-envify: 1.4.0 3974 | react: 18.3.1 3975 | scheduler: 0.23.2 3976 | 3977 | react-hook-form@7.53.2(react@18.3.1): 3978 | dependencies: 3979 | react: 18.3.1 3980 | 3981 | react-refresh@0.14.2: {} 3982 | 3983 | react-remove-scroll-bar@2.3.6(@types/react@18.3.12)(react@18.3.1): 3984 | dependencies: 3985 | react: 18.3.1 3986 | react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1) 3987 | tslib: 2.7.0 3988 | optionalDependencies: 3989 | '@types/react': 18.3.12 3990 | 3991 | react-remove-scroll@2.6.0(@types/react@18.3.12)(react@18.3.1): 3992 | dependencies: 3993 | react: 18.3.1 3994 | react-remove-scroll-bar: 2.3.6(@types/react@18.3.12)(react@18.3.1) 3995 | react-style-singleton: 2.2.1(@types/react@18.3.12)(react@18.3.1) 3996 | tslib: 2.7.0 3997 | use-callback-ref: 1.3.2(@types/react@18.3.12)(react@18.3.1) 3998 | use-sidecar: 1.1.2(@types/react@18.3.12)(react@18.3.1) 3999 | optionalDependencies: 4000 | '@types/react': 18.3.12 4001 | 4002 | react-style-singleton@2.2.1(@types/react@18.3.12)(react@18.3.1): 4003 | dependencies: 4004 | get-nonce: 1.0.1 4005 | invariant: 2.2.4 4006 | react: 18.3.1 4007 | tslib: 2.7.0 4008 | optionalDependencies: 4009 | '@types/react': 18.3.12 4010 | 4011 | react@18.3.1: 4012 | dependencies: 4013 | loose-envify: 1.4.0 4014 | 4015 | read-cache@1.0.0: 4016 | dependencies: 4017 | pify: 2.3.0 4018 | 4019 | readdirp@3.6.0: 4020 | dependencies: 4021 | picomatch: 2.3.1 4022 | 4023 | readdirp@4.0.2: {} 4024 | 4025 | resolve-from@5.0.0: {} 4026 | 4027 | resolve@1.22.8: 4028 | dependencies: 4029 | is-core-module: 2.15.1 4030 | path-parse: 1.0.7 4031 | supports-preserve-symlinks-flag: 1.0.0 4032 | 4033 | reusify@1.0.4: {} 4034 | 4035 | rollup@4.27.3: 4036 | dependencies: 4037 | '@types/estree': 1.0.6 4038 | optionalDependencies: 4039 | '@rollup/rollup-android-arm-eabi': 4.27.3 4040 | '@rollup/rollup-android-arm64': 4.27.3 4041 | '@rollup/rollup-darwin-arm64': 4.27.3 4042 | '@rollup/rollup-darwin-x64': 4.27.3 4043 | '@rollup/rollup-freebsd-arm64': 4.27.3 4044 | '@rollup/rollup-freebsd-x64': 4.27.3 4045 | '@rollup/rollup-linux-arm-gnueabihf': 4.27.3 4046 | '@rollup/rollup-linux-arm-musleabihf': 4.27.3 4047 | '@rollup/rollup-linux-arm64-gnu': 4.27.3 4048 | '@rollup/rollup-linux-arm64-musl': 4.27.3 4049 | '@rollup/rollup-linux-powerpc64le-gnu': 4.27.3 4050 | '@rollup/rollup-linux-riscv64-gnu': 4.27.3 4051 | '@rollup/rollup-linux-s390x-gnu': 4.27.3 4052 | '@rollup/rollup-linux-x64-gnu': 4.27.3 4053 | '@rollup/rollup-linux-x64-musl': 4.27.3 4054 | '@rollup/rollup-win32-arm64-msvc': 4.27.3 4055 | '@rollup/rollup-win32-ia32-msvc': 4.27.3 4056 | '@rollup/rollup-win32-x64-msvc': 4.27.3 4057 | fsevents: 2.3.3 4058 | 4059 | run-parallel@1.2.0: 4060 | dependencies: 4061 | queue-microtask: 1.2.3 4062 | 4063 | scheduler@0.23.2: 4064 | dependencies: 4065 | loose-envify: 1.4.0 4066 | 4067 | semver@6.3.1: {} 4068 | 4069 | semver@7.7.1: 4070 | optional: true 4071 | 4072 | sharp@0.33.5: 4073 | dependencies: 4074 | color: 4.2.3 4075 | detect-libc: 2.0.4 4076 | semver: 7.7.1 4077 | optionalDependencies: 4078 | '@img/sharp-darwin-arm64': 0.33.5 4079 | '@img/sharp-darwin-x64': 0.33.5 4080 | '@img/sharp-libvips-darwin-arm64': 1.0.4 4081 | '@img/sharp-libvips-darwin-x64': 1.0.4 4082 | '@img/sharp-libvips-linux-arm': 1.0.5 4083 | '@img/sharp-libvips-linux-arm64': 1.0.4 4084 | '@img/sharp-libvips-linux-s390x': 1.0.4 4085 | '@img/sharp-libvips-linux-x64': 1.0.4 4086 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 4087 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 4088 | '@img/sharp-linux-arm': 0.33.5 4089 | '@img/sharp-linux-arm64': 0.33.5 4090 | '@img/sharp-linux-s390x': 0.33.5 4091 | '@img/sharp-linux-x64': 0.33.5 4092 | '@img/sharp-linuxmusl-arm64': 0.33.5 4093 | '@img/sharp-linuxmusl-x64': 0.33.5 4094 | '@img/sharp-wasm32': 0.33.5 4095 | '@img/sharp-win32-ia32': 0.33.5 4096 | '@img/sharp-win32-x64': 0.33.5 4097 | optional: true 4098 | 4099 | shebang-command@2.0.0: 4100 | dependencies: 4101 | shebang-regex: 3.0.0 4102 | 4103 | shebang-regex@3.0.0: {} 4104 | 4105 | signal-exit@4.1.0: {} 4106 | 4107 | simple-swizzle@0.2.2: 4108 | dependencies: 4109 | is-arrayish: 0.3.2 4110 | optional: true 4111 | 4112 | source-map-js@1.2.1: {} 4113 | 4114 | source-map@0.6.1: {} 4115 | 4116 | source-map@0.8.0-beta.0: 4117 | dependencies: 4118 | whatwg-url: 7.1.0 4119 | 4120 | stacktracey@2.1.8: 4121 | dependencies: 4122 | as-table: 1.0.55 4123 | get-source: 2.0.12 4124 | 4125 | stoppable@1.1.0: {} 4126 | 4127 | string-width@4.2.3: 4128 | dependencies: 4129 | emoji-regex: 8.0.0 4130 | is-fullwidth-code-point: 3.0.0 4131 | strip-ansi: 6.0.1 4132 | 4133 | string-width@5.1.2: 4134 | dependencies: 4135 | eastasianwidth: 0.2.0 4136 | emoji-regex: 9.2.2 4137 | strip-ansi: 7.1.0 4138 | 4139 | stringify-entities@4.0.4: 4140 | dependencies: 4141 | character-entities-html4: 2.1.0 4142 | character-entities-legacy: 3.0.0 4143 | 4144 | strip-ansi@6.0.1: 4145 | dependencies: 4146 | ansi-regex: 5.0.1 4147 | 4148 | strip-ansi@7.1.0: 4149 | dependencies: 4150 | ansi-regex: 6.1.0 4151 | 4152 | sucrase@3.35.0: 4153 | dependencies: 4154 | '@jridgewell/gen-mapping': 0.3.5 4155 | commander: 4.1.1 4156 | glob: 10.4.5 4157 | lines-and-columns: 1.2.4 4158 | mz: 2.7.0 4159 | pirates: 4.0.6 4160 | ts-interface-checker: 0.1.13 4161 | 4162 | supports-preserve-symlinks-flag@1.0.0: {} 4163 | 4164 | tailwind-merge@2.5.4: {} 4165 | 4166 | tailwindcss-animate@1.0.7(tailwindcss@3.4.15): 4167 | dependencies: 4168 | tailwindcss: 3.4.15 4169 | 4170 | tailwindcss@3.4.15: 4171 | dependencies: 4172 | '@alloc/quick-lru': 5.2.0 4173 | arg: 5.0.2 4174 | chokidar: 3.6.0 4175 | didyoumean: 1.2.2 4176 | dlv: 1.1.3 4177 | fast-glob: 3.3.2 4178 | glob-parent: 6.0.2 4179 | is-glob: 4.0.3 4180 | jiti: 1.21.6 4181 | lilconfig: 2.1.0 4182 | micromatch: 4.0.8 4183 | normalize-path: 3.0.0 4184 | object-hash: 3.0.0 4185 | picocolors: 1.1.1 4186 | postcss: 8.4.49 4187 | postcss-import: 15.1.0(postcss@8.4.49) 4188 | postcss-js: 4.0.1(postcss@8.4.49) 4189 | postcss-load-config: 4.0.2(postcss@8.4.49) 4190 | postcss-nested: 6.2.0(postcss@8.4.49) 4191 | postcss-selector-parser: 6.1.2 4192 | resolve: 1.22.8 4193 | sucrase: 3.35.0 4194 | transitivePeerDependencies: 4195 | - ts-node 4196 | 4197 | thenify-all@1.6.0: 4198 | dependencies: 4199 | thenify: 3.3.1 4200 | 4201 | thenify@3.3.1: 4202 | dependencies: 4203 | any-promise: 1.3.0 4204 | 4205 | tinyexec@0.3.1: {} 4206 | 4207 | tinyglobby@0.2.10: 4208 | dependencies: 4209 | fdir: 6.4.2(picomatch@4.0.2) 4210 | picomatch: 4.0.2 4211 | 4212 | to-regex-range@5.0.1: 4213 | dependencies: 4214 | is-number: 7.0.0 4215 | 4216 | tr46@1.0.1: 4217 | dependencies: 4218 | punycode: 2.3.1 4219 | 4220 | tree-kill@1.2.2: {} 4221 | 4222 | ts-interface-checker@0.1.13: {} 4223 | 4224 | tslib@2.7.0: {} 4225 | 4226 | tslib@2.8.1: 4227 | optional: true 4228 | 4229 | tsup@8.3.5(jiti@2.4.2)(postcss@8.5.3)(typescript@5.6.3)(yaml@2.7.1): 4230 | dependencies: 4231 | bundle-require: 5.0.0(esbuild@0.24.0) 4232 | cac: 6.7.14 4233 | chokidar: 4.0.1 4234 | consola: 3.2.3 4235 | debug: 4.3.7 4236 | esbuild: 0.24.0 4237 | joycon: 3.1.1 4238 | picocolors: 1.1.1 4239 | postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.7.1) 4240 | resolve-from: 5.0.0 4241 | rollup: 4.27.3 4242 | source-map: 0.8.0-beta.0 4243 | sucrase: 3.35.0 4244 | tinyexec: 0.3.1 4245 | tinyglobby: 0.2.10 4246 | tree-kill: 1.2.2 4247 | optionalDependencies: 4248 | postcss: 8.5.3 4249 | typescript: 5.6.3 4250 | transitivePeerDependencies: 4251 | - jiti 4252 | - supports-color 4253 | - tsx 4254 | - yaml 4255 | 4256 | typescript@5.6.3: {} 4257 | 4258 | ufo@1.5.4: {} 4259 | 4260 | undici@5.29.0: 4261 | dependencies: 4262 | '@fastify/busboy': 2.1.1 4263 | 4264 | unenv@2.0.0-rc.15: 4265 | dependencies: 4266 | defu: 6.1.4 4267 | exsolve: 1.0.5 4268 | ohash: 2.0.11 4269 | pathe: 2.0.3 4270 | ufo: 1.5.4 4271 | 4272 | update-browserslist-db@1.1.1(browserslist@4.24.2): 4273 | dependencies: 4274 | browserslist: 4.24.2 4275 | escalade: 3.2.0 4276 | picocolors: 1.1.1 4277 | 4278 | use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1): 4279 | dependencies: 4280 | react: 18.3.1 4281 | tslib: 2.7.0 4282 | optionalDependencies: 4283 | '@types/react': 18.3.12 4284 | 4285 | use-sidecar@1.1.2(@types/react@18.3.12)(react@18.3.1): 4286 | dependencies: 4287 | detect-node-es: 1.1.0 4288 | react: 18.3.1 4289 | tslib: 2.7.0 4290 | optionalDependencies: 4291 | '@types/react': 18.3.12 4292 | 4293 | util-deprecate@1.0.2: {} 4294 | 4295 | vite@5.4.11(@types/node@20.8.3): 4296 | dependencies: 4297 | esbuild: 0.21.5 4298 | postcss: 8.4.49 4299 | rollup: 4.27.3 4300 | optionalDependencies: 4301 | '@types/node': 20.8.3 4302 | fsevents: 2.3.3 4303 | 4304 | webidl-conversions@4.0.2: {} 4305 | 4306 | whatwg-url@7.1.0: 4307 | dependencies: 4308 | lodash.sortby: 4.7.0 4309 | tr46: 1.0.1 4310 | webidl-conversions: 4.0.2 4311 | 4312 | which@2.0.2: 4313 | dependencies: 4314 | isexe: 2.0.0 4315 | 4316 | workerd@1.20250428.0: 4317 | optionalDependencies: 4318 | '@cloudflare/workerd-darwin-64': 1.20250428.0 4319 | '@cloudflare/workerd-darwin-arm64': 1.20250428.0 4320 | '@cloudflare/workerd-linux-64': 1.20250428.0 4321 | '@cloudflare/workerd-linux-arm64': 1.20250428.0 4322 | '@cloudflare/workerd-windows-64': 1.20250428.0 4323 | 4324 | wrangler@4.14.1(@cloudflare/workers-types@4.20250506.0): 4325 | dependencies: 4326 | '@cloudflare/kv-asset-handler': 0.4.0 4327 | '@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250428.0) 4328 | blake3-wasm: 2.1.5 4329 | esbuild: 0.25.2 4330 | miniflare: 4.20250428.1 4331 | path-to-regexp: 6.3.0 4332 | unenv: 2.0.0-rc.15 4333 | workerd: 1.20250428.0 4334 | optionalDependencies: 4335 | '@cloudflare/workers-types': 4.20250506.0 4336 | fsevents: 2.3.3 4337 | sharp: 0.33.5 4338 | transitivePeerDependencies: 4339 | - bufferutil 4340 | - utf-8-validate 4341 | 4342 | wrap-ansi@7.0.0: 4343 | dependencies: 4344 | ansi-styles: 4.3.0 4345 | string-width: 4.2.3 4346 | strip-ansi: 6.0.1 4347 | 4348 | wrap-ansi@8.1.0: 4349 | dependencies: 4350 | ansi-styles: 6.2.1 4351 | string-width: 5.1.2 4352 | strip-ansi: 7.1.0 4353 | 4354 | ws@8.18.0: {} 4355 | 4356 | xast-util-to-xml@4.0.0: 4357 | dependencies: 4358 | '@types/xast': 2.0.4 4359 | ccount: 2.0.1 4360 | stringify-entities: 4.0.4 4361 | 4362 | xastscript@4.0.0: 4363 | dependencies: 4364 | '@types/xast': 2.0.4 4365 | 4366 | yallist@3.1.1: {} 4367 | 4368 | yaml@2.5.1: {} 4369 | 4370 | yaml@2.7.1: 4371 | optional: true 4372 | 4373 | youch@3.3.4: 4374 | dependencies: 4375 | cookie: 0.7.2 4376 | mustache: 4.2.0 4377 | stacktracey: 2.1.8 4378 | 4379 | zod@3.22.3: {} 4380 | 4381 | zod@3.23.8: {} 4382 | 4383 | zod@3.24.4: {} 4384 | -------------------------------------------------------------------------------- /src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { OpenAPIHono } from "@hono/zod-openapi"; 2 | import synthesis from "./synthesis"; 3 | const api = new OpenAPIHono(); 4 | api.route("/synthesis", synthesis); 5 | export default api; 6 | -------------------------------------------------------------------------------- /src/api/synthesis.ts: -------------------------------------------------------------------------------- 1 | import { z, OpenAPIHono, createRoute } from "@hono/zod-openapi"; 2 | import { HTTPException } from "hono/http-exception"; 3 | import { Service, FORMAT_CONTENT_TYPE } from "../utils/synthesis"; 4 | import retry, { RetryError } from "../utils/retry"; 5 | import buildSsml from "../utils/buildSsml"; 6 | type Bindings = { 7 | TOKEN: string; 8 | }; 9 | const synthesis = new OpenAPIHono<{ Bindings: Bindings }>(); 10 | export default synthesis; 11 | 12 | const querySchema = z.object({ 13 | voiceName: z 14 | .string() 15 | .optional() 16 | .openapi({ 17 | param: { description: "语音名称" }, 18 | example: "zh-CN-XiaoxiaoNeural", 19 | }), 20 | pitch: z 21 | .string() 22 | .optional() 23 | .openapi({ 24 | param: { description: "音高" }, 25 | examples: ["-50%", "-50Hz", "low"], 26 | }), 27 | rate: z 28 | .string() 29 | .optional() 30 | .openapi({ param: { description: "语速" } }), 31 | volume: z 32 | .string() 33 | .optional() 34 | .openapi({ param: { description: "音量" } }), 35 | format: z 36 | .string() 37 | .optional() 38 | .openapi({ param: { description: "音频格式" } }), 39 | token: z 40 | .string() 41 | .optional() 42 | .openapi({ param: { description: "Token" } }), 43 | text: z.string().openapi({ param: { description: "合成文本" } }), 44 | }); 45 | 46 | const route = createRoute({ 47 | method: "get", 48 | path: "/", 49 | request: { query: querySchema }, 50 | responses: { 51 | 200: { description: "返回音频" }, 52 | 401: { description: "Unauthorized" }, 53 | 500: { description: "Error" }, 54 | }, 55 | }); 56 | 57 | synthesis.openapi(route, async (c) => { 58 | const { 59 | voiceName = "zh-CN-XiaoxiaoNeural", 60 | rate, 61 | pitch, 62 | text = "", 63 | format = "audio-24khz-48kbitrate-mono-mp3", 64 | volume, 65 | token, 66 | } = c.req.valid("query"); 67 | 68 | function getToken() { 69 | if ( 70 | typeof globalThis.process !== "undefined" && 71 | globalThis.process.env.TOKEN !== undefined 72 | ) { 73 | return globalThis.process.env.TOKEN; 74 | } 75 | if (c.env.TOKEN !== undefined && c.env.TOKEN !== "") { 76 | return c.env.TOKEN; 77 | } 78 | return ""; 79 | } 80 | 81 | const systemToken = getToken(); 82 | 83 | if (systemToken !== "") { 84 | if (token !== systemToken) { 85 | c.status(401); 86 | return c.text("Unauthorized"); 87 | } 88 | } 89 | 90 | const service = new Service(); 91 | 92 | if (!FORMAT_CONTENT_TYPE.has(format)) { 93 | throw new HTTPException(400, { message: `无效的音频格式:${format}` }); 94 | } 95 | const ssml = buildSsml(text, { voiceName, pitch, rate, volume }); 96 | DEBUG && console.debug("SSML:", ssml); 97 | try { 98 | const result = await retry( 99 | async () => { 100 | const result = await service.convert(ssml, format as string); 101 | return result; 102 | }, 103 | 3, 104 | (index, error, abort) => { 105 | console.warn(`Attempt ${index} failed:${error}`); 106 | if ( 107 | error instanceof Error && 108 | error.message.includes("SSML is invalid") 109 | ) { 110 | abort(); 111 | throw new HTTPException(400, { message: "SSML 无效" }); 112 | } 113 | }, 114 | ); 115 | c.header("Content-Type", FORMAT_CONTENT_TYPE.get(format)); 116 | return c.body(result); 117 | } catch (error) { 118 | if (error instanceof HTTPException) throw error; 119 | c.status(500); 120 | if (!(error instanceof RetryError)) 121 | throw new HTTPException(500, { 122 | message: `UnknownError: ${(error as string).toString()}`, 123 | }); 124 | throw new HTTPException(500, { 125 | message: `${error.message}. Cause: ${error.cause.map((e) => (e as Error).toString()).join(", ")}`, 126 | }); 127 | } 128 | }); 129 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 微软“朗读” TTS 转发器 5 | 6 | 7 | 8 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 27 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 57 |

微软“朗读” TTS 转发器

58 |

运行于 Cloudflare Workers 上的微软“大声朗读”转发器。

59 |

67 | 直接使用 70 | 71 | GitHub 72 |

73 |
74 |
75 |

“大声朗读” 是什么?

76 |

77 | “大声朗读” (Read aloud) 78 | 是微软为一系列自家服务提供的文字转语音服务。由于大家基本上都使用的是 79 | Edge 浏览器上的接口,所以也被时常称为 "Edge TTS 80 | "。 81 |

82 |

自行部署

83 |

84 | 请前往 85 | GitHub 项目页面查看。 86 |

87 |

导入

88 |

89 | 90 |

91 |

目前支持阅读、爱阅记、源阅读的导入。

92 |

API 参考

93 |

94 | Swagger 文档 95 |

96 |

相关项目

97 | 120 |

121 | 更多有关听书的信息,请访问 122 | 我的听书方法汇总 - Yunfi 125 |

126 |
127 |
128 |

129 | Made with ❤️ by Yunfi .
130 | Please consider give a ⭐️ on 131 | GitHub 132 | . 133 |

134 |
135 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { OpenAPIHono } from "@hono/zod-openapi"; 2 | import { swaggerUI } from "@hono/swagger-ui"; 3 | 4 | import api from "./api"; 5 | 6 | const app = new OpenAPIHono(); 7 | export default app; 8 | 9 | // @ts-expect-error 10 | import indexHtml from "./index.html"; 11 | 12 | app.get("/", async (c) => { 13 | return c.html(indexHtml); 14 | }); 15 | 16 | app.route("/api", api); 17 | 18 | app.get("/robots.txt", (c) => c.text("User-agent: *\nDisallow: /")); 19 | app.get("/api/ui", swaggerUI({ url: "/api/doc" })); 20 | app.doc("/api/doc", { 21 | openapi: "3.0.0", 22 | info: { 23 | version: "1.0.0", 24 | title: "Read Aloud Transit API", 25 | }, 26 | }); 27 | -------------------------------------------------------------------------------- /src/utils/buildSsml.ts: -------------------------------------------------------------------------------- 1 | import { x } from "xastscript"; 2 | import type { Element } from "xast"; 3 | import { toXml } from "xast-util-to-xml"; 4 | 5 | export default function buildSsml( 6 | text: string, 7 | options: { 8 | voiceName: string; 9 | pitch?: string; 10 | rate?: string; 11 | volume?: string; 12 | }, 13 | ) { 14 | const { voiceName, pitch, rate, volume } = options; 15 | function wrapProsody(text: string) { 16 | if (!pitch && !rate && !volume) { 17 | return text; 18 | } 19 | return x("prosody", { pitch, rate, volume }, text); 20 | } 21 | function wrapVoice(child: Element | string) { 22 | return x("voice", { name: voiceName }, child); 23 | } 24 | 25 | return toXml( 26 | x( 27 | "speak", 28 | { 29 | version: "1.0", 30 | xmlns: "http://www.w3.org/2001/10/synthesis", 31 | "xml:lang": "zh-CN", 32 | }, 33 | [wrapVoice(wrapProsody(text))], 34 | ), 35 | ); 36 | } 37 | -------------------------------------------------------------------------------- /src/utils/retry.ts: -------------------------------------------------------------------------------- 1 | export class RetryError extends Error { 2 | public cause: unknown[]; 3 | 4 | constructor(message: string, cause: unknown[]) { 5 | super(message); 6 | this.cause = cause; 7 | } 8 | } 9 | 10 | const retry = async ( 11 | fn: () => Promise, 12 | times: number, 13 | errorFn?: (index: number, error: unknown, abort: () => void) => void, 14 | failedMessage = "Failed after multiple attempts", 15 | ): Promise => { 16 | let aborted = false; 17 | 18 | const attempt = async (remaining: number, errors: unknown[]): Promise => { 19 | if (remaining === 0 || aborted) { 20 | throw new RetryError(failedMessage, errors); 21 | } 22 | 23 | try { 24 | return await fn(); 25 | } catch (error) { 26 | if (errorFn) { 27 | errorFn(times - remaining, error, () => { 28 | aborted = true; 29 | }); 30 | } 31 | return attempt(remaining - 1, [...errors, error]); 32 | } 33 | }; 34 | 35 | return attempt(times, []); 36 | }; 37 | 38 | export default retry; 39 | -------------------------------------------------------------------------------- /src/utils/synthesis.ts: -------------------------------------------------------------------------------- 1 | export const FORMAT_CONTENT_TYPE = new Map([ 2 | ["raw-16khz-16bit-mono-pcm", "audio/basic"], 3 | ["raw-48khz-16bit-mono-pcm", "audio/basic"], 4 | ["raw-8khz-8bit-mono-mulaw", "audio/basic"], 5 | ["raw-8khz-8bit-mono-alaw", "audio/basic"], 6 | 7 | ["raw-16khz-16bit-mono-truesilk", "audio/SILK"], 8 | ["raw-24khz-16bit-mono-truesilk", "audio/SILK"], 9 | 10 | ["riff-16khz-16bit-mono-pcm", "audio/x-wav"], 11 | ["riff-24khz-16bit-mono-pcm", "audio/x-wav"], 12 | ["riff-48khz-16bit-mono-pcm", "audio/x-wav"], 13 | ["riff-8khz-8bit-mono-mulaw", "audio/x-wav"], 14 | ["riff-8khz-8bit-mono-alaw", "audio/x-wav"], 15 | 16 | ["audio-16khz-32kbitrate-mono-mp3", "audio/mpeg"], 17 | ["audio-16khz-64kbitrate-mono-mp3", "audio/mpeg"], 18 | ["audio-16khz-128kbitrate-mono-mp3", "audio/mpeg"], 19 | ["audio-24khz-48kbitrate-mono-mp3", "audio/mpeg"], 20 | ["audio-24khz-96kbitrate-mono-mp3", "audio/mpeg"], 21 | ["audio-24khz-160kbitrate-mono-mp3", "audio/mpeg"], 22 | ["audio-48khz-96kbitrate-mono-mp3", "audio/mpeg"], 23 | ["audio-48khz-192kbitrate-mono-mp3", "audio/mpeg"], 24 | 25 | ["webm-16khz-16bit-mono-opus", "audio/webm; codec=opus"], 26 | ["webm-24khz-16bit-mono-opus", "audio/webm; codec=opus"], 27 | 28 | ["ogg-16khz-16bit-mono-opus", "audio/ogg; codecs=opus; rate=16000"], 29 | ["ogg-24khz-16bit-mono-opus", "audio/ogg; codecs=opus; rate=24000"], 30 | ["ogg-48khz-16bit-mono-opus", "audio/ogg; codecs=opus; rate=48000"], 31 | ]); 32 | 33 | class SynthesisRequest { 34 | requestId: string; 35 | bufferChunks: Uint8Array[]; 36 | successCallback: (buffer: Uint8Array) => void; 37 | errorCallback: (error: Error) => void; 38 | constructor( 39 | requestId: string, 40 | successCallback: (buffer: Uint8Array) => void, 41 | errorCallback: (error: Error) => void, 42 | ) { 43 | this.requestId = requestId; 44 | this.bufferChunks = []; 45 | this.successCallback = successCallback; 46 | this.errorCallback = errorCallback; 47 | } 48 | send(ssml: string, format: string, send: (data: string) => void) { 49 | const configData = { 50 | context: { 51 | synthesis: { 52 | audio: { 53 | metadataoptions: { 54 | sentenceBoundaryEnabled: "false", 55 | wordBoundaryEnabled: "false", 56 | }, 57 | outputFormat: format, 58 | }, 59 | }, 60 | }, 61 | }; 62 | const configMessage = `X-Timestamp:${Date()}\r\nContent-Type:application/json; charset=utf-8\r\nPath:speech.config\r\n\r\n${JSON.stringify(configData)}`; 63 | DEBUG && 64 | console.debug(`Start to send config:${this.requestId}\n`, configMessage); 65 | send(configMessage); 66 | 67 | // 发送SSML消息 68 | const ssmlMessage = `X-Timestamp:${Date()}\r\nX-RequestId:${this.requestId}\r\nContent-Type:application/ssml+xml\r\nPath:ssml\r\n\r\n${ssml}`; 69 | DEBUG && 70 | console.debug(`Start to send SSML:${this.requestId}\n`, ssmlMessage); 71 | send(ssmlMessage); 72 | } 73 | 74 | handleString(data: string) { 75 | if (data.includes("Path:turn.start")) { 76 | // 开始传输 77 | DEBUG && console.debug(`Turn Start:${this.requestId}...`); 78 | } else if (data.includes("Path:turn.end")) { 79 | // 结束传输 80 | DEBUG && 81 | console.debug( 82 | `Turn End:${this.requestId} with ${this.bufferChunks.length} chunks...`, 83 | ); 84 | const result = concatenate(this.bufferChunks); 85 | this.successCallback(result); 86 | } 87 | } 88 | handleBuffer(data: Uint8Array) { 89 | this.bufferChunks.push(data); 90 | } 91 | } 92 | 93 | function parseRequestId(data: string) { 94 | const pattern = /X-RequestId:(?[a-z|0-9]*)/; 95 | const matches = data.match(pattern); 96 | return matches?.groups?.id ?? null; 97 | } 98 | 99 | // Path:audio\r\n 100 | const AUDIO_SEP = [80, 97, 116, 104, 58, 97, 117, 100, 105, 111, 13, 10]; 101 | 102 | async function handleMessage(message: MessageEvent) { 103 | const data = message.data; 104 | switch (typeof data) { 105 | case "string": { 106 | const requestId = parseRequestId(data); 107 | DEBUG && console.debug(`Received string (${requestId}): ${data}\n`); 108 | return { requestId, data }; 109 | } 110 | case "object": { 111 | const bufferData = new Uint8Array( 112 | // if run in node, data is a Blob, otherwise it's a ArrayBuffer 113 | /* 114 | Calling arrayBuffer() is not optimal, maybe reading from stream is better, 115 | but it actually not a big deal, since we don't have a strict performance requirement 116 | when running on Node 117 | 118 | On Cloudflare, data comes as ArrayBuffer, so even we want to read from stream, 119 | we cannot. So the 10ms CPU limit is a problem. 120 | */ 121 | data.constructor.name === "Blob" 122 | ? await (data as unknown as Blob).arrayBuffer() 123 | : data, 124 | ); 125 | const contentIndex = 126 | indexOfUint8Array(bufferData, AUDIO_SEP) + AUDIO_SEP.length; 127 | const headers = new TextDecoder("utf-8").decode( 128 | bufferData.subarray(2, contentIndex), 129 | ); 130 | const requestId = parseRequestId(headers); 131 | DEBUG && 132 | console.debug( 133 | `Received binary/audio (${requestId}):length: ${bufferData.byteLength}`, 134 | ); 135 | 136 | return { requestId, data: bufferData.subarray(contentIndex) }; 137 | } 138 | } 139 | } 140 | 141 | export class Service { 142 | private ws: WebSocket | null = null; 143 | private timerId: ReturnType | undefined = undefined; 144 | 145 | private requestMap = new Map(); 146 | 147 | constructor() { 148 | this.requestMap = new Map(); 149 | } 150 | 151 | private reset() { 152 | this.ws = null; 153 | if (this.timerId) { 154 | clearTimeout(this.timerId); 155 | this.timerId = undefined; 156 | } 157 | this.requestMap.clear(); 158 | } 159 | 160 | private async connect(): Promise { 161 | const connectionId = randomUUID().toLowerCase(); 162 | const url = `wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=${connectionId}`; 163 | const ws = new WebSocket(url); 164 | ws.addEventListener("close", (closeEvent) => { 165 | // 服务器会自动断开空闲超过30秒的连接 166 | const { code, reason } = closeEvent; 167 | for (const [id, request] of this.requestMap) { 168 | request.errorCallback( 169 | new Error(`Connection Closed for ${id}. ${reason} ${code}`), 170 | ); 171 | } 172 | this.reset(); 173 | console.info(`Connection Closed: ${reason} ${code}`); 174 | }); 175 | 176 | ws.addEventListener("message", async (message) => { 177 | const { requestId, data } = await handleMessage(message); 178 | if (requestId == null) { 179 | DEBUG && console.debug("Received unrecognized message"); 180 | return; 181 | } 182 | const request = this.requestMap.get(requestId); 183 | if (request) { 184 | typeof data === "string" 185 | ? request.handleString(data) 186 | : request.handleBuffer(data); 187 | } else { 188 | DEBUG && console.debug("Received message for unknown request"); 189 | return; 190 | } 191 | }); 192 | 193 | return new Promise((resolve, reject) => { 194 | ws.addEventListener("open", () => { 195 | resolve(ws); 196 | }); 197 | ws.addEventListener("error", (error) => { 198 | console.error(`Connection failed: ${error}`); 199 | if (this.ws) { 200 | this.ws.close(); 201 | for (const [id, request] of this.requestMap) { 202 | request.errorCallback( 203 | new Error(`Connection failed:${id} ${error}`), 204 | ); 205 | } 206 | } else { 207 | reject(`Connection failed: ${error}`); 208 | } 209 | }); 210 | }); 211 | } 212 | 213 | public async convert(ssml: string, format: string) { 214 | if (this.ws == null || this.ws.readyState !== WebSocket.OPEN) { 215 | console.info("Starting connection..."); 216 | const connection = await this.connect(); 217 | this.ws = connection; 218 | console.info("Connected"); 219 | } 220 | const requestId = randomUUID().toLowerCase(); 221 | const result = new Promise((resolve, reject) => { 222 | // 等待服务器返回后这个方法才会返回结果 223 | const request = new SynthesisRequest(requestId, resolve, reject); 224 | this.requestMap.set(requestId, request); 225 | console.info("Request received", requestId); 226 | // 发送配置消息 227 | // biome-ignore lint/style/noNonNullAssertion: ws should be initialized above 228 | request.send(ssml, format, (data) => this.ws!.send(data)); 229 | }); 230 | // 收到请求,清除超时定时器 231 | if (this.timerId) { 232 | DEBUG && console.debug("Received request, clearing timeout timer"); 233 | clearTimeout(this.timerId); 234 | this.timerId = undefined; 235 | } 236 | // 设置定时器,超过10秒没有收到请求,主动断开连接 237 | DEBUG && console.debug("Creating timeout timer"); 238 | this.timerId = setTimeout(() => { 239 | if (this.ws && this.ws.readyState === WebSocket.OPEN) { 240 | this.ws.close(1000); 241 | DEBUG && console.debug("Connection Closed by client due to inactivity"); 242 | this.timerId = undefined; 243 | } 244 | }, 10000); 245 | 246 | const data = await Promise.race([ 247 | result, 248 | new Promise((_, reject) => { 249 | // 如果超过 20 秒没有返回结果,则清除请求并返回超时 250 | setTimeout(() => { 251 | reject("Convert timeout"); 252 | }, 10000); 253 | }), 254 | ]); 255 | this.requestMap.delete(requestId); 256 | console.info(`Convert Complete:${requestId}`); 257 | console.info(`${this.requestMap.size} tasks remaining`); 258 | return data; 259 | } 260 | } 261 | 262 | function randomUUID() { 263 | return crypto.randomUUID().replaceAll("-", ""); 264 | } 265 | 266 | function concatenate(uint8arrays: Uint8Array[]) { 267 | const totalLength = uint8arrays.reduce( 268 | (total, uint8array) => total + uint8array.byteLength, 269 | 0, 270 | ); 271 | 272 | const result = new Uint8Array(totalLength); 273 | let offset = 0; 274 | for (const uint8array of uint8arrays) { 275 | result.set(uint8array, offset); 276 | offset += uint8array.byteLength; 277 | } 278 | 279 | return result; 280 | } 281 | 282 | function indexOfUint8Array(buffer: Uint8Array, separator: number[]) { 283 | if (separator.length === 0) { 284 | return 0; 285 | } 286 | 287 | const len = buffer.length - separator.length; 288 | let i = 0; 289 | 290 | outer: while (i <= len) { 291 | if (buffer[i] === separator[0]) { 292 | for (let j = 1; j < separator.length; j++) { 293 | if (buffer[i + j] !== separator[j]) { 294 | i++; 295 | continue outer; 296 | } 297 | } 298 | return i; 299 | } 300 | i++; 301 | } 302 | return -1; 303 | } 304 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Bundler", 6 | "strict": true, 7 | "skipLibCheck": true, 8 | "lib": ["ESNext"], 9 | "types": ["@cloudflare/workers-types/2023-07-01", "node"], 10 | "jsx": "react-jsx", 11 | "jsxImportSource": "hono/jsx" 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig((options) => ({ 4 | entry: ["entries/node.ts"], 5 | loader: { 6 | ".html": "text", 7 | }, 8 | splitting: false, 9 | sourcemap: !!options.watch, 10 | clean: true, 11 | format: "esm", 12 | outDir: "dist-node", 13 | noExternal: options.watch ? undefined : [/(.*)/], 14 | esbuildOptions: (esbuildOptions) => { 15 | esbuildOptions.define = { 16 | ...esbuildOptions.define, 17 | DEBUG: options.watch ? "true" : "false", 18 | }; 19 | }, 20 | })); 21 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | # not a actual wrangler.toml file, a workaround to prevent cloudflare from refusing to deploy (for not having a wrangler.toml file) 2 | name = "read-aloud" 3 | compatibility_flags = ["nodejs_compat"] 4 | compatibility_date = "2024-09-23" 5 | main = "dist-prebuild/workerd.mjs" 6 | 7 | [build] 8 | command = "pnpm run prebuild:worker" --------------------------------------------------------------------------------